Edit-Fenster eines anderen Programms verändern.



  • Hallo,

    Ich will ein Programm schreiben, dass ein Edit-Fenster eines mit Macromedia erstellten Programms verändert. Ich habe es so versucht:

    Parent = FindWindow(NULL,"Titel des Fensters");
    Child = FindWindowEx(Parent,NULL,"EDIT",NULL);
    SendMessage(Child,WM_SETTEXT,256,string
    

    Dies hat jedoch nicht funktioniert.



  • Mach eine gescheite Fehlerbehandlung und du kommst eventuell selber drauf warum es nicht finktioniert.

    Wird das Elternfenster gefunden? Bekommst du ein gültiges Handle für das Edit Control? Ist die Fensterklasse "EDIT"? Hat das Control überhaupt ein Handle? Was gibt WM_SETTEXT zurück? Und was heißt "Hat jedoch nicht funktionieret?" Fehlermeldung? Was ist passiert? ... Fragen über Fragen.



  • Ich bekomme das Handle auf das Parent-Window, jedoch nicht das Hanlde des Child-Window (Die Funktion FindWindowEx liefert NULL zurück). Ich weiss nicht, ob es sich um ein Fenster der Klase "EDIT" handelt. Aber auch das ParentFenster, von welchem ich das Handle habe, reagiert nicht auf Nachrichten.



  • Hmm mach es so:

    HWND hWnd	 = FindWindow("#32770", "Visual Assist X Trial"); // Ist jetzt nur nen bsp. :)
    if(hWnd == NULL)
        return FALSE;
    
    HWND hEdit = GetDlgItem(hWnd, 103); // Wenns nen Dialog ist... wobei 103 die ID des Ctrls ist...
    // Wenns nen Window ist, kannst de es in der Tat besser mit FindWindowEx()machen...
    FindWindowEx(hWnd, NULL, "EDIT", NULL );
    
    if(hEdit == NULL)
        return FALSE;
    

    Vergewisser dich mal über die Klasse des Edits usw mit:
    http://www.codeguru.com/cpp/i-n/ieprogram/security/article.php/c4387/

    Da kannst de dir die Klasse und die ID usw anzeigen lassen... ist recht praktisch 🙂


Anmelden zum Antworten