olen vastaalkaja ja olen tekemässä seuraavanlaista ajastin ohjelmaa...
kun windows käynnistyy, samalla käynnistyy myös ajastin joka tulee päällimmäiseksi ikkunaksi ilman otsikkopalkkia näytön vasempaan yläreunaan, ajastin ei näy tehtäväpalkissa. kun ajastimessa oleva aika on kulunut loppuun, tulee näytön keskelle ikkuna päällimmäiseksi ilman otsikkopalkkia ja joka ei näy tehtäväpalkissa. tässä ikkunassa on myös ajastin jonka kuluttua kone sammuttaa itsensä... ennen kuin tämä ikkuna aukeaa se syöttää cd aseman kelkan ulos ja sisään huomautukseksi...
tässä on ohjelman koodia:
ajastin.frm
Option Explicit Dim aktivointiaika Private Declare Function SetWindowPos& Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) Private Sub Form_Load() SetWindowPos frmajastin.hwnd, -1, 0, 0, 0, 0, 3 frmajastin.Left = 0 frmajastin.Top = 0 If Time >= (Time + #12:00:30 AM#) Then frmaktivointi.Show BeginPlaySound 1 tmraktivointi.Enabled = False Else aktivointiaika = Time + #12:00:30 AM# End If End Sub Private Sub tmraktivointi_Timer() Static aktivointi As Integer If lblaika.Caption <> CStr(Time) Then If Time > aktivointiaika And Not aktivointi Then frmaktivointi.Show BeginPlaySound 1 aktivointi = True tmraktivointi.Enabled = False ElseIf Time < aktivointiaika Then aktivointi = False lblaika.Caption = CDate(aktivointiaika - Time) End If End If End Sub
aktivointi.frm
Option Explicit Dim nopassword Dim salasana Private Declare Function SetWindowPos& Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLenght As Long, ByVal hwndCallback As Long) As Long Private EWX_SHUTDOWN As Integer Private Sub Form_Load() SetWindowPos frmaktivointi.hwnd, -1, 0, 0, 0, 0, 3 frmaktivointi.Left = (Screen.Width - frmaktivointi.Width) / 2 frmaktivointi.Top = (Screen.Height - frmaktivointi.Height) / 2 Dim X As Long X = mciSendString("Set CDAudio Door Open", "", 0, 0) X = mciSendString("Set CDAudio Door Closed", "", 0, 0) End Sub Private Sub tmrlaskuri_Timer() Static laskuri If lbllaskuri.Caption = 0 Then tmrlaskuri.Enabled = False ExitWindowsEx EWX_SHUTDOWN, 1 Unload Me End End If BeginPlaySound 1 If laskuri Then lbllaskuri.Caption = lbllaskuri.Caption - 1 laskuri = Not laskuri Else lbllaskuri.Caption = lbllaskuri.Caption - 1 laskuri = Not laskuri End If End Sub
ajastin.bas
Option Explicit Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As Any, ByVal uFlags As Long) As Long Global Const SND_ASYNC = &H1 Global Const SND_NODEFAULT = &H2 Global Const SND_MEMORY = &H4 Global SoundBuffer As String Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long Sub BeginPlaySound(ByVal ResourceId As Integer) Dim Ret As Variant SoundBuffer = StrConv(LoadResData(ResourceId, "AJASTIN"), vbUnicode) Ret = sndPlaySound(SoundBuffer, SND_ASYNC Or SND_NODEFAULT Or SND_MEMORY) End Sub
ohjelmaan pitäisi tehdä seuraavanlaisia lisäyksiä:
ohjelman ollessa käynnissä ei sitä pysty mitenkään sammuttamaan, jos tietokoneen sammuttaa ja käynnistää uudelleen niin ajastimessa oleva aika jatkuu siitä mihin se jäi kun kone tai ohjelma sammui ja ainoastaan kun päivä vaihtuu niin ajastimen aika resetoituu...
VINKKEJÄ JA KOODIA TULEMAAN!!!
Pistä ensiksi koodivb-tagit jotta tota voisi ehkä ainakin melkein lukea. Kai muistit sisentää?
Katsoppa koodivinkeistä tekemääni pilailu ohjelmaa... olet ilmeisesti tekemässä samaa ohjelmaa.
Oijoi, sisennä ihmeessä. Tuollaista koodia on aika häijy lukea. Saisi paremmin selvää, ja ymmärtäisi ehkä, mikä on ongelmana.
eikun olen tekemässä ohjelmaa minkä käynnistyttyä siinä oleva aika alkaa kulua ja sen päätyttyä järjestelmä sammuu (ennen sammumista cd asema syöttää levyn pihalle ja tiedostojen tallennusaikaa on 15 sekuntia) jos järjestelmän sammuttaa kun aikaa on vielä jäljellä ajastimessa ja käynnistää myöhemmin uudestaan ajastin jatkaa siitä ajasta mihin se jäi kun järjestelmä sammutettiin...
Tiedot voi tallentaa vaikka tiedostoon, siitä löytyy täältä paljon keskustelua, haku on ystäväsi. Koodivinkkejäkin on toki tästä. EiVoiSammuta systeemin voi tehdä vaikka siten että laitat form_unloadiin käskyn vaikka shellillä että käynnistetään samainen ohjelma tyyliin shell(app.path & "\" & app.exename & ".exe").
olen laittanut tiedot tiedostoon, mutta kun käynnistän koneen niin ajastimessa kulunut aika on niin sanotusta kulkenut koneen ollessa pois päältä... miten saan ajan jatkumaan siitä hetkestä kun koneen on sammuttanut, jos aikaa jäljellä???
miten pystyn muokkaamaan viestiäni?? ylhäällä oleva muokkaa ei ole käytössä?
ohjeet kirjoitti:
Voit muokata viestejä jälkikäteen jokaisen viestin yläreunasta olevasta Muokkaa-linkistä. Samasta paikasta löytyy myös mahdollisuus viestin poistamiseen. Muokkaus ja poisto ovat käytettävissä puolen tunnin ajan viestin lähettämisestä. Tämän jälkeen viesti jää pysyvästi palvelimelle.
Mut jos tarkoitit tuota viestiä, jonka kirjoitit juuri ennen seuraavan lähettämistä, niin sit en tiä missä mättää.
Aihe on jo aika vanha, joten et voi enää vastata siihen.