externem Fenster Fokus verleihen, Tastendruck senden



  • Hallo !

    Ich brauche für mein tool in c++builder 5
    noch folgende Funktionalitäten :

    -Einem externen Programmfenster den Fokus
    verleihen mit Fehlerbehandlung
    -Tastendruck an dieses Programm senden
    mit Zeitsteuerung (wie lange gedrückt)
    -Aus einem DateTimePicker den Inhalt
    auslesen und parsen

    Vielen Dank schonmal für eure Hilfe!

    Gruß und Ciao!
    Ben



  • AnsiString asFensterCaption="test.php - Microsoft Internet Explorer"// Z.B.
    HWND pfenster = FindWindow(NULL,asFensterCaption);
    SendMessage(pfenster,WM_KEYDOWN,VK_F5,1);
    


  • Hi !

    AnsiString asFensterCaption="test.php - Microsoft Internet Explorer";
    

    --> Cannot convert 'AnsiString' to 'const char *'
    --> Type mismatch in parameter 'lpWindowName' (wanted 'const char *', got 'AnsiString')

    Abgesehen davon klappt HWND

    pfenster = FindWindow(NULL,asFensterCaption);
    

    auch mit direkter fensternamenübergabe nicht, d.h es tut sich nichts.
    Wie ist die funktion FindWindow überhaupt definiert ?
    Kann ich auch wildcards wie z.B FindWindow(NULL,*test.txt*) verwenden ?

    SendMessage(pfenster,WM_KEYDOWN,VK_F5,1);
    

    Wie ist diese Funktion definiert?
    Brauch ein solches Fenster nicht vorerst den Fokus?
    Welche Ausdruck steht für welche Taste?
    Wie kann man Tastenkombinationen realisieren ?

    Gruß !
    Ben



  • sorry
    🙄
    pfenster = FindWindow(NULL,asFensterCaption.c_str());

    BringWindowToTop(pfenster);
    SendMessage(pfenster,WM_KEYDOWN,VK_F5,1);

    //sons probiermal
    PostMessage(pfenster,WM_KEYDOWN,VK_F5,1);

    BringWindowToTop(frmMain);//eigenes Fenster



  • Hi !

    SendMessage(pfenster,WM_KEYDOWN,VK_F1,1);
    und
    PostMessage(pfenster,WM_KEYDOWN,VK_F1,1);

    bringen beide nicht das gewünschte Ergebnis.
    Das anvisierte Fenster bekommt zwar den Fokus,
    aber F1 wird nicht übermittelt.
    Da ich mich in die Windows Messages noch nicht
    eingearbeitet habe, fehlt mir allerdings auch die
    Vorstellung, wie genau die funktion aufgerufen werden
    muss.
    Ich will die Tastenkombination SHIFT+R an ein Programm
    senden, das ist erstmal alles.

    Danke bisher für die nette Hilfe!
    Gruß!
    Ben



  • beedee6 schrieb:

    Wie ist die funktion FindWindow überhaupt definiert ?

    Bei solchen Fragen könnte ich schon wieder ausrasten. 😮 😉
    Wie wär's, wenn du F1 erstmal manuell an deinen BCB übermittelst, also die Hilfe benutzt!?
    Ganz abgesehen von der FAQ, wo es Beiträge mit so netten Titeln wie "Tastendruck simulieren" gibt ...



  • sorry, es war nicht meine absicht hier irgendwen zu verärgern



  • Hier ein paar Quellen :

    http://www.codeproject.com/system/keyboard.asp
    http://msdn.microsoft.com/library/default.asp?url=
    /library/en-us/winui/winui/windowsuserinterface/userinput/
    keyboardinput/keyboardinputreference/keyboardinputfunctions/keybd_event.asp

    http://eric.aling.tripod.com/PB/tips/pbtip36.htm

    Ciao!
    Ben

    Edit:
    Fullquote gelöscht, Zitate bitte auf das Notwendigste beschränken.
    Danke!



  • beedee6 schrieb:

    sorry, es war nicht meine absicht hier irgendwen zu verärgern

    Mit dem Widerkäuen hinlänglich dokumentierter Informationen (inklusive Fullquote, obwohl der Link genügt) bist du aber auf dem besten Wege. 😉



  • kommt nicht wieder vor, versprochen 🤡


Anmelden zum Antworten