Avatar billede chump Nybegynder
21. maj 2001 - 14:18 Der er 1 løsning

callback message - haster

Hej
Jeg vil gerne modtage messages fra et andet program ind i mit program. Det kan jeg osse godt finde ud af med denne kode men der opstår en fejl i kernel når jeg afslutter.

Public Declare Function CallWindowProc Lib \"user32\" Alias \"CallWindowProcA\" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetWindowLong Lib \"user32\" Alias \"SetWindowLongA\" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Const GWL_WNDPROC = -4
Global lpPrevWndProc As Long

Public Sub Hook(xHwnd As Long)
    lpPrevWndProc = SetWindowLong(xHwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Public Sub Unhook(xHwnd As Long)
  Dim temp As Long
  temp = SetWindowLong(xHwnd, GWL_WNDPROC, lpPrevWndProc)
End Sub

Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

        If uMsg = WM_USER + 308 Then
            Label2.Caption = 1024 + 308 & \" er kommer ind\"
        End If
       
      WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Function


Form_load: Hook me.hwnd
form_unload: Unhook me.hwnd
Avatar billede nolle_k Nybegynder
22. maj 2001 - 22:19 #1
Er du sikker på at du kommer ind i Form_Unload??

Jeg har haft samme problem! Jeg havde bare primært problemer i Debug hvis jeg undlod at lukke programmet via programmet egen Unload men lukkede programmet via VBs stop knap! Dette resulterede i at VB lukkede ned uden nogen form for varsel!

Prøv at ryk det du har i form_Unload ud til QueryUnload i stedet for! Det kan måske løse dit problem!

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester