Seite 1 von 1

[Gelöst] Shell-Hook funktioniert nicht

Verfasst: 15.12.2006 18:02
von hardfalcon
Hallo, mit folgendem Code wollte ich den grundstein für einen eigenen Taskmanager legen, aber ich bin schier am verzweifeln. Die Procedure wird einfach nicht aufgerufen... :|

Code: Alles auswählen

#HSHELL_TASKMAN = 7

Procedure ShellProc(nCode,wParam,lParam)
  Debug "Procedure aufgerufen"
  If nCode = #HSHELL_TASKMAN
    Debug "Taskmanager!"
  EndIf
EndProcedure

OpenWindow(0,#PB_Ignore,#PB_Ignore,400,300,"CTRL+ALT+DEL Hooker")

Debug SetWindowsHookEx_(#WH_SHELL,@ShellProc(),GetModuleHandle_(0),0)

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
//EDIT: Hier ist die Lösung des Problems:
http://www.purebasic.fr/german/viewtopi ... 411#129411

Verfasst: 15.12.2006 18:11
von Thorium
Schau dir mal den VB-Code an: http://www.myee.com/Programming/Program ... 30619.html

Da werden nochmal extra API-Funktionen verwendet um einen Shell Hook zu registrieren und zu deregistrieren.

Edit: Hier steht auch was sehr interessantes wie man Strg+Alt+Entf hooken kann. Scheint aber ne komplexere Angelegenheit zu sein: http://www.codeproject.com/win32/Antoni ... print=true

Verfasst: 15.12.2006 18:52
von hardfalcon
Ich hab grad die Ursache des Problems gefunden:
HSHELL_TASKMAN Windows 95 only: The user has selected the task list. The wParam parameter is undefined and should be ignored. A shell application that provides a task list should return TRUE to prevent Windows from starting its task list.
WIN32.HLP sei dank, in der MSDN hab ich den wichtigen Hinweis darauf, dass das Ganze nur unter Windows 95 geht, nicht gesehen (falls es den da überhaupt gibt).

//EDIT: Vielen Dank für die Links, Thorium! :allright: