Gå til innhold

VB 6 program kun i ein Module..


Anbefalte innlegg

Skrevet

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...

Videoannonse
Annonse
Skrevet

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...)

Skrevet

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".

Skrevet

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å...

Skrevet (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 av aadnk
Skrevet

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..

Skrevet

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.

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...