Hook
Verfasst: 01.09.2008 14:33
hi leute,
ich würde gern die buttons in der titelleiste (minimieren, maximieren, schließen) von externen programmen
abfangen um zb. ne messagebox mit "ja/nein programm schließen" zwischen zu schalten...
mit pb internen programmen hab ichs schon geschafft:
... nur wie schauts zb. mit calc.exe aus? soweit ich mitbekommen hab brauch ich ne separate dll um externe events zu hooken. hab in den foren leider (für mich) nichts nützliches gefunden...
hat jemand von euch schon mal ähnliches versucht und kann mir ev. unter die arme greifen?
danke schonmal, chi
ich würde gern die buttons in der titelleiste (minimieren, maximieren, schließen) von externen programmen
abfangen um zb. ne messagebox mit "ja/nein programm schließen" zwischen zu schalten...
mit pb internen programmen hab ichs schon geschafft:
Code: Alles auswählen
Global Callback.l
Procedure Callback(WindowID, Message, wParam, lParam)
Select Message
Case #WM_SYSCOMMAND
Select wParam
Case #SC_CLOSE
Callback = 1
ProcedureReturn 0
Case #SC_MAXIMIZE
Callback = 2
ProcedureReturn 0
Case #SC_MINIMIZE
Callback = 3
ProcedureReturn 0
EndSelect
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
OpenWindow(0, 0, 0, 320, 240, " test", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
TextGadget(1, 10, 10, 150, 14, "")
SetWindowCallback(@Callback(), 0)
Repeat
Event = WaitWindowEvent()
If Callback
Select Callback
Case 1
SetGadgetText(1, "Close Button")
quit = MessageRequester("Info", "Quit program?", #PB_MessageRequester_YesNo)
If quit = #PB_MessageRequester_Yes
exit = 1
Else
Callback = 0
EndIf
Case 2
SetGadgetText(1, "Maximize Button")
Case 3
SetGadgetText(1, "Minimize Button")
Default
Callback = 0
EndSelect
EndIf
Until exit
End
hat jemand von euch schon mal ähnliches versucht und kann mir ev. unter die arme greifen?
danke schonmal, chi