AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Simulierten Hotkey per WMHotKey abfangen?
Thema durchsuchen
Ansicht
Themen-Optionen

Simulierten Hotkey per WMHotKey abfangen?

Ein Thema von schwa226 · begonnen am 16. Apr 2008 · letzter Beitrag vom 23. Apr 2008
 
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#9

Re: Simulierten Hotkey per WMHotKey abfangen?

  Alt 22. Apr 2008, 23:43
ManOMan.. bin am verzweifeln!

Das mit den Globalen Variabeln und MMF habe ich hinbekommen, aber nicht das Problem dass die MsgFilterFunc auch auf die eigenen keybd_events reagiert!

Habe versucht den Hook vor dem Keyboard Event aufzulösen. Das bringt aber auch nichts -> Endlosschleife!

z.B. Ich fange vom 1. Programm ein "Up" ab, dass für Programm 2 bestimmt gewesen wäre. Dann sende ich das "Up" an Program 3 das ich zuerst in den Vordergrund geholt habe!

Kann mir da nochmal jemand Helfen!?

Code:
    //ein Tasten Shorcut z.B. Up -> Up, Esc -> Enter, Enter -> Enter,...
     if ((TPMsg(lParam)^.wParam = HandleHook[x].car3)
     and (HandleHook[x].car4 = 0)
     and (HandleHook[x].car5 = 0)) then // 1. Cardinal
        begin
            if TPMsg(lParam)^.message = WM_KEYDOWN then// Taste unten
            begin

              TPMsg(lParam)^.message := WM_NULL;  //Originale Message löschen
              Result := CallNextHookEx(MMFData.NextHook, Code, wParam, lParam);

              ClearTempArray(HandleHook);          //HandleHook[x].car3.. bis car5 auf 0 setzen damit oben nicht mehr auf einen Tastendruck reagiert wird

              SetForeGroundWIndow(MMFData.ProgramHandle);

              keybd_event(HandleHook[x].car1, 0, 0, 0);

                if not (HandleHook[x].car2 = 0) then begin
                  keybd_event(HandleHook[x].car2, 0, 0, 0);
                  keybd_event(HandleHook[x].car1, 0, KEYEVENTF_KEYUP,0);
                  keybd_event(HandleHook[x].car2, 0, KEYEVENTF_KEYUP,0);
                end
                else keybd_event(HandleHook[x].car1, 0, KEYEVENTF_KEYUP,0);

              //Messagebox(0, PChar(HandleHook[x].str1), 'H O O K 1', 0);
              Kill := True;

              CopyBackTempArray();           //HandleHook[x].car3.. bis car5 wieder auf Original Shortcut Kombination zurücksetzen
              Break;
            end;
     end
....
..
.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz