Thema: Delphi sendkeys und Focus

Einzelnen Beitrag anzeigen

slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#1

sendkeys und Focus

  Alt 25. Dez 2005, 21:30
Hallo zusammen,

ich möchte ein anderes Programm fernsteuern und benutze überwiegend WM_SETTEXT dafür. In einigen Feldern ist es jedoch notwendig, daß ein TAB hinterhergeschickt wird, weil die Software einen Lookup für andere (readonly) Felder des Formulars macht.
Nach vielen Versuchen gelingt mir dies nun auch mit sndkeys32.pas. Allerdings leider nicht immer.
Problem ist, daß manchmal (nicht rekonstruierbar unter welchen Bedingungen ) die Eingabe nicht im korrekten Feld (in der korrekten Anwendung schon) landet. Das ganze läuft dann so:

Delphi-Quellcode:
  wnd := FindWindowEx(wndmain, 0, 'AfxOleControl42', nil);
    if (wnd=0) then MainForm.CriticalError('Eingabefenster nicht gefunden!');
    wnd := FindWindowEx(wnd, 0, 'SSCalendarMaskedEdit', nil); // Eingabefeld
    if (wnd=0) then MainForm.CriticalError('Eingabefenster nicht gefunden!');
    // Fokus setzen
    SendMessage(wnd, WM_SETFOCUS, 0, 0);
    Application.ProcessMessages;
    Delay(500);
    SendKeys(PChar(MeinWert), true);
    Delay(500);
Delphi-Quellcode:
procedure Delay(const WaitTime: DWord);
var
  Start: DWord;
begin
  Start := GetTickCount;
  repeat
    ProcessMessages;
  until (GetTickCount - Start) > WaitTime;
end;
Mir dem Delay habe ich rumgespielt, hilft aber nicht wirklich.

Hat jemand eine Idee, woran der falsche Fokus liegen könnte ?

lg
Sebastian
  Mit Zitat antworten Zitat