Problem RegisterHotkey



  • Hallo zusammen,

    wisst ihr wie ich einen Hotkey nur an eine Applikation/Fenster oder Prozess binden kann.

    Ich hab in meiner Anwendung z.B. Alt+D registriert. Leider ist da der unerwünschte Nebeneffekt, dass alle Aplliaktionen darauf reagieren und das möchte ich nicht.

    Die Tastenkombination per Hook abzufangen hab ich auch schon probiert, aber da die durch einen Bug die Anwendung einfriert, kommt das nicht in Frage.

    Falls es nicht geht, würde mich interessieren wie ich die gefangene Message WM_HOTKEY wieder in die MessageQueue einstelle, damit die andere Anwendung darauf reagieren kann.



  • Keine Ideen?



  • Ich hab in meiner Anwendung z.B. Alt+D registriert. Leider ist da der unerwünschte Nebeneffekt, dass alle Aplliaktionen darauf reagieren und das möchte ich nicht.

    Wie kann das sein. Wenn man mit RegisterHotKey einen systemweiten HotKey registriert, wieso sollten dann andere Anwendungen, die Alt+D nicht registriert haben, darauf reagieren?



  • Was du suchst ist LoadAccelerators (ResourceTyp -> Accelerator), CreateAcceleratorTable. In einem SDI/MDI/... ist das schon drin. Da musst du nur noch die Resourcen anpassen.

    @RenéG:
    Musst du auf eine so überhebliche Art antworten? Manchmal ist das ja ganz lustig. Ein "Du irrst dich[, mach es so]" reicht doch völlig.



  • Ich brauch eigentlich nur einen Hotkey für meine Anwendung.

    Bei der Anwendung handelt es sich um eine Art SDI-Applikation mit nem Treeview auf der linken und ner Formview auf der anderen Seite. Leider kann ich nur mit der Formview programmieren und hab auf die restlichen Teile keine Einfluss, da sie fest und fremdprogrammiert sind.
    Wenn ich nen Accelerator anlege, kann ich den nur für die Formview anlegen und die Tastenkombination funzt dann auch nur wenn die Formview den Focus hat, nicht aber der Tree.



  • Pseudocode
    ...
    case WM_HOTKEY:
    if(MSG.wParam == HOTKEY)
    {
    if(GetFocus() == FensterHWND)
    {
    //TO DO Hier Hotkey Logik einfügen
    }
    }



  • na ob er nach 10 jahren immer noch eine Antwort sucht ist eher fraglich 😉



  • Villeicht braucht es ja jemand anderes.
    ^^


Anmelden zum Antworten