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 Subaktivointi.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 Subajastin.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 Subohjelmaan 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.