Hooks



  • hallo,

    habe gehört, dass ich mein prob mit dem mauszeiger verschwinden lassen
    mit nem hook lösen kann

    also die sache is ja die:
    Mit ShowCursor() kann ich zwar den mauszeiger invisible machen, aber das bezieht sich immernur auf das ProgWindow...
    ich brauche also sozusagen ein globales ShowCursor()

    mir wurde gesagt , dass es mit hooks auf jeden fall geht..
    hmm, SetWindowsHookEx() wär schon mal n guter anfang denke ich oder ?

    wie funktioniert sowas dann ? was genau sind hooks ??
    was mach ich mit dem handle HHOOK hHook ?

    ausserdem muss ich ihm ne hook prozedur geben, die in einer library ist
    welche lib ist das dann ? user32.lib ?

    mfg haMMer



  • Hast du es schon mal mit SetSystemCursor oder ClipCursor versucht?!
    Ansonsten: zu Hooks findest du z.B. was in den FAQ 🙂



  • hab was gefunden :
    http://www.ziebura.com/coding

    gute anfänger tuts für dlls und hooks

    [ Dieser Beitrag wurde am 14.03.2003 um 00:22 Uhr von Hammer editiert. ]



  • re:

    so, hab mich mal mit dem thema dlls und hooks befasst ..
    also ich hab mir jetz ne hook.dll gebaut, die den mauszeiger auf invisible setzt, was sich auf den ganzen desktop bezieht !
    funktioniert einwandtfrei ...

    nur:
    ich habe versucht das ganze auch intern in meiner exe zu machen, d.h. also
    die HookProc nicht in der dll, sondern innerhalb der exe aus auszuführen...
    damit hat ich alles in einer datei ... aber es passiert nix !
    ich habs genauso gemacht wie in der dll, nur dass ich als Module handle NULL übergeben habe (hMod)

    hier der code:

    #pragma comment(linker,"/Section:Shared,rws")
    #pragma data_seg("Shared")
    HHOOK hHook = NULL;
    #pragma data_seg()

    LRESULT CALLBACK HookProc(int code, WPARAM wParam, LPARAM lParam)
    {
    if(code >= 0)
    {
    ShowCursor(false);
    }
    return CallNextHookEx(hHook, code, wParam, lParam);
    }

    aus meiner DlgProc() heraus, wird dann
    hHook = SetWindowsHookEx(WH_CALLWNDPROC, HookProc, NULL, 0);
    ausgeführt... compilieren kann ers, aber es passiert nix
    woran liegt das ??

    geht das nur mit dlls ?? weil in der msdn steht, dass wenn die HookProc innerhalb der exe ist, dann soll man als hModule NULL übergeben... 🙄

    mfg haMMer



  • Meines Wissen nach müssen Hooks, sollen sie denn Systemweit (=Global, also nicht nur in Deinem Programm) funktionieren, in einer DLL sitzen.

    Da Du ja den Mauscursor nicht nur in Deinem Programm (dafür würde der Hook in Deiner EXE reichen), sondern für's ganze System (wozu eigentlich? ALT + TAB-Fanatiker haben mit Deinem Programm wohl nix zu lachen, oder?) verstecken willst, mußt Du zwangsläufig den Weg der DLL gehen...



  • also scheinbar muss man wohl mit hooks ganz vorsichtig umgehen !!

    seit dem ich mit den hooks rumprobiert hab, und zum beenden des porgramms nur der taskmanager fähig ist, hat sich jetz n permanenter bug in mein os eingschlichen, und zwar ist die fensterleiste vom taskmanager verschwunden !
    ich kann den taskmanager jetz nur noch per alt f4 schliessen ...!
    und ich kann windows so oft neu booten wie ich will, das änert nix 😃

    wozu eigentlich? ALT + TAB-Fanatiker haben mit Deinem Programm wohl nix zu lachen, oder?

    hmm, nöö, bei mir muss man sich neu anmelden, damit der cursor wieder sichtbar wird, kannst das prog ja aus dem taskmanager raushauen, ändert nix ... 😃



  • LOL!

    Zu deinem Problem mit Taskmanager:
    Mach mal'n Doppelklick auf den Fensterrahmen. Das sollte das Menu inkl. Titelleiste wiederbringen!



  • LOL!!!

    du hast recht, ich hab das gar net gewusst ! 😃
    LOOOOOOL!!


Anmelden zum Antworten