Ausführen einer Funktion mittels 2 Tasten ?



  • Folgendes. Wenn ich die Tasten ALT+F drücke wird bei meinem Proggi ein String neu geschrieben.
    Das Habe ich so gelöst:

    BOOL CProggiDlg::OnInitDialog()
    .
    .
    .
    RegisterHotKey(m_hWnd, m_nIDHotKey1, MOD_ALT, 'F');
    .
    .
    .
    
    LRESULT CProggiDlg::OnHotKey(WPARAM wp, LPARAM lp)
    {
    	if (wp == m_nIDHotKey1)
    	{
    		m_lh1 = 500;
    		m_lh2 = 500;
    
    		UpdateData(false);
    	}
    
    	return 0;
    }
    

    Ist es nun möglich dies auch mit gleichzeitigem drücken der Tasten A, S , D und F zu realisieren ?



  • über die hotkey funktion wahrscheinlich nich

    aber du hast ja die WM_KEYDOWN und WM_KEYUP nachricht und könntest für jeden buchstaben n flag festlegen das auf bei WM_KEYDOWN auf 1 und bei WM_KEYUP auf 0 gesetzt wird

    wenn alle 4 flags auf 1 stehn führst du deine aktion durch



  • problematisch, weil:

    ich denke, Du verwendet HOTKEYS, um Deine Anwendung von überall aus ansprechbar zu machen.

    WM_KEYUP | WM_KEYDOWN werden "nur" an das aktuelle Fenster geschickt.
    Das müsstest Du dann per KeyHook realisieren. Das allerdings für jede Taste halte ich nicht für sinnvoll (handhabbar), ist dann ja schon ein KeyLogger.

    Wenn Du allerdings nur in Deinem Programm diese Tastenkombination abfangen möchtest, kannst Du die Reihenfolge mit den Nachrichten behandeln.
    Dann frage ich mich allerdings wofür die HotKeys... 😉

    Grüße
    Timo


Anmelden zum Antworten