Richard87 Skrevet 24. september 2004 Del Skrevet 24. september 2004 kossen kan eg laga et program 100% i ein module? her e koden: Dim TimerID, TimerID2 As Long Dim iCurrent As Long Dim iLast As Long Dim iHwnd(9999, 3) As Long Dim lLast_hWnd As Long Dim iTest As Long Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long Declare Function GetForegroundWindow Lib "user32" () As Long Sub Main() TimerID = SetTimer(0, 0, CLng(100), AddressOf MyTimer) TimerID = SetTimer(0, 0, CLng(5000), AddressOf MyTimer2) iCurrent = 0 iLast = 0 lLast_hWnd = CLng(0) End Sub Public Sub MyTimer(hwnd As Long, msg As Long, idTimer As Long, dwTime As Long) If Not GetForegroundWindow = lLast_hWnd Then Dim lHwnd As Long Dim iTime As String lHwnd = GetForegroundWindow iTime = Time 'save stuff... iCurrent = iCurrent + 1 If iCurrent = 9999 Then Exit Sub iHwnd(iCurrent, 0) = iTime iHwnd(iCurrent, 1) = lHwnd 'figure out the name of the window... End If End Sub Public Sub MyTimer2(hwnd As Long, msg As Long, idTimer As Long, dwTime As Long) Dim sData As String Dim x As Integer For x = 0 To iCurrent sData = sData & vbCrLf & iHwnd(x, 0) & iHwnd(x, 1) Next x MsgBox sData End Sub Det som skjer e at med ein gang eg starte programmet så exite det automatisk.... men vis eg trykke på debug så virke det... Nogen som vettt om eg kan laga et program 100% i ein module eller om eg e NØDT te og skriva det ved hjelp av ein form... Lenke til kommentar
Richard87 Skrevet 24. september 2004 Forfatter Del Skrevet 24. september 2004 Det som e det egentlige spørsmålet e vel om VB kan kjøre ein module og veta på om någe skjer, isteden for om progrtammet mitt blir avslutta automatisk når det ikkje e flere kommandoer igjenn(som dokk ser har eg brukt ein API timer...) Lenke til kommentar
aadnk Skrevet 24. september 2004 Del Skrevet 24. september 2004 Det er ikke særlig vanskelig å konfigurere VB til å automatisk starte kode i en modul. Trykk på "Project" i menyen og velg "[Navn på prosjekt] Propeties". Set så "Startup object" i vinduet som kommer opp til "Sub Main". Velg "OK", og prosjektet skulle nå automatisk starte prosedyren "Main". Lenke til kommentar
Richard87 Skrevet 24. september 2004 Forfatter Del Skrevet 24. september 2004 Eg vett det, men problemet e når den e ferdig med og lasta inn koden i Sub Main() så avsluttes prosjektet mitt:( uten og vente på at timer'en skal slå... Lenke til kommentar
GeirGrusom Skrevet 24. september 2004 Del Skrevet 24. september 2004 Legg til en "Do : DoEvents : Loop Until EndOfApp" eller noe. Lenke til kommentar
Richard87 Skrevet 24. september 2004 Forfatter Del Skrevet 24. september 2004 eg har ingen peiling ka du sa der:( kan du utdypa det noge mer? Lenke til kommentar
Richard87 Skrevet 24. september 2004 Forfatter Del Skrevet 24. september 2004 takk for hjelpen... eg fatta det;) men uansett, vett du kossen eg kan sjekka om Modulen min blir "Unload"? Lenke til kommentar
aadnk Skrevet 24. september 2004 Del Skrevet 24. september 2004 (endret) Moduler blir ikke lastet ut. De består helt til programmet avsluttes. Men du kan vel bare avslutte vente-løkken når du er ferdig med alle operasjonene? Jeg vil forresten anbefale å bruke Sleep i vente-løkken: Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) Dim bExit As Boolean ' Set bExit til True når du er ferdig Sub Main() ' --- Resten av kode her --- Do Until bExit Sleep 10 DoEvents Loop End Sub Endret 24. september 2004 av aadnk Lenke til kommentar
Richard87 Skrevet 25. september 2004 Forfatter Del Skrevet 25. september 2004 poenget e at modulen e heila programmet, og det må jo bli avslutta på ein eller annen måte, akkuratt nå brukke eg ein lowlevel keyboard hoock te og avslutta, men eg vil sjekka om programmet mitt blir avslutta av windows istenden for meg.. Lenke til kommentar
aadnk Skrevet 25. september 2004 Del Skrevet 25. september 2004 Hvis programmet ditt ikke har en form, ville jeg ikke beskymret meg for å passe på om Windows abslutter pogrammet. I de tillfellene det skjer, utlogging eller med Task Manager, er det som oftest ikke noe du kan gjøre. Avslutter brukeren programmet med Task Manager får det ingen tid til å renske opp for seg selv, men Windows vil etter en stund fjerne alle spor. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå