title image


Smiley Re: Wenn Windows herunterfährt soll mein Programm eine Aktion machen
Hi,



ein Modul nehmen, diesen Code hier:





Private Const GWL_WNDPROC = (-4)

Private Const WM_QUERYENDSESSION = &H11

'

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _

ByVal hwnd As Long, _

ByVal nIndex As Long, _

ByVal dwNewLong As Long) As Long

'

Private 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

'

Private hOldWndProc As Long

'

Public Sub HookOn(ByVal hwnd As Long)

hOldWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)

End Sub

'

Public Sub HookOff(ByVal hwnd As Long)

SetWindowLong hwnd, GWL_WNDPROC, hOldWndProc

End Sub

'

Function WindowProc(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

If wMsg = WM_QUERYENDSESSION Then

WindowProc = False

'Tue was oder nicht.

Exit Function

End If

WindowProc = CallWindowProc(hOldWndProc, hwnd, wMsg, wParam, ByVal lParam)

End Function



Zu Programmbeginn:



Private Sub Form1_Load() ...

HookOn Form1.hwnd



Zu Programmende:



Private Sub Form1_Terminate() ...

HookOff Form1.hwnd ' ansonsten crash!



Wenn die Sitzung beendet werden soll muss die WindowProzedur True zurückgeben. Wenn sie wie hier ein False zurück gibt, so hält das den Shot Down auf.






Programmierst Du noch frei oder wirst Du schon von Microsoft verwaltet ( .NET)?



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: