Eingabe in fremdes Programm



  • Ich muss Meßwerte von einem DMM in eine Programm eingeben.
    Ich habe ein C-Programm mit dem ich die Messwerte erfasse.
    Wie kann ich diese Messwerte per Button in ein anderes Programm an der Stelle
    eingeben an der dort der Cursor steht?

    Ich war vorher in diesem Programm und habe den Cursor an der richtigen Stelle der
    Eingabe maske. Ich möchte jetzt in meine Testprogramm wechseln und dort eine Button betätigen der den letzten Messwert (es ist eine String) in das andere Programm an der Stelle des Cursors eingibt.

    Ich möchte nicht mit CTRL-C CTRL-V arbeiten.

    Gibt es dafür eine Lösung??



  • Ich denke, du musst dich mit AttachThreadInput mit der fremden Anwendung verbinden und kannst dann mit GetFocus ermitteln, wo gerade der Fokus sitzt - ist aber nur Vermutung 😉



  • ja es gibt eine lösung:
    mit keybd_event kannst du einen virtuellen Tastendruck simulieren. durch das drücken des buttons änders du aber das vordergrundfenster.

    eine möglichkeit wäre also zB so änlich wie

    HWND hWin = FindWindow(NULL, "FensterName"); 
    SetForegroundWindow(hWin);     // Focus auf gewuenschtes Fenster setzen
    char text[] = "Hallo";     // einach nur ein beispieltext
    
    for(int i = 0; text[i] != '\0'; i++)
    {
    	keybd_event(VkKeyScan(text[i]), 0, 0, NULL);     //taste drücken...
    	keybd_event(VkKeyScan(text[i]), 0, KEYEVENTF_KEYUP, 0);    // und wieder loslassen
    }
    

    das ist hald ohne groß-klein-schreibung. wenn du es mit willst musst du noch das byte, dass bei der umwandlung von short in unsigned char verlorgen geht (bei dem von VkKeyScan zurückgegebenen wert) beachten.

    viel glück dabei
    tuempl



  • Danke das hilft


Anmelden zum Antworten