Announcement

Collapse
No announcement yet.

Focus auf fremdes Programm

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Focus auf fremdes Programm

    Hallo,

    ich schreibe in ein edi-Feld eines fremden Programms einen Text mit
    Code:
    s:='12345';
     for i := 1 to Length(s) do 
    begin
    SendMessage(wnd, WM_CHAR, Word(s[i]), 0);
    sleep(100);   // das ist grundsätzlich entbehrlich
    end;
    Das funktioniert.

    Leider ist das Ergebnis nicht das selbe, wie wenn man direkt in das edit-Feld Tastatureingaben macht.

    Bei direkter Tastaureingabe prüft das fremde Programm sofort nach der Eingabe des 5.Zeichens ob die Eingabe zulässig ist.

    Bei sendmessage steht einfach nur die Zahl da. Ich muss dann noch einmal mit der Maus in das edit-Feld klicken um das fremde Programm zu aktivieren.

    Kann man mit sendmessage auch den Fokus auf das fremde edit-feld setzen ?
    Wie bekomme ich den Cursor in das fremde edit-Feld?
    Offensichtlich ist das das Problem.


    Gruß
    Werner

  • #2
    Hallo!

    Vielleicht so?!?:
    http://delphi.about.com/od/adptips20...ltip1104_3.htm

    BYE BERND

    Comment


    • #3
      Hallo,

      der Hinweis war gut.
      Der Focus aufs Fenster reicht doch.


      Mit
      SetForegroundWindow(WindowHandle);
      gibt man dem fremden Fenster den Focus.

      Mit
      SendMessage(WindowHandle, WM_SYSCOMMAND, SC_RESTORE, WindowHandle);
      aktiviert man sogar ein minimiertes Fenster.

      Gruß
      Zuletzt editiert von Werner Zuber; 04.10.2007, 18:26.

      Comment

      Working...
      X