![]() |
sendkeys und Focus
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:
Mir dem Delay habe ich rumgespielt, hilft aber nicht wirklich.
procedure Delay(const WaitTime: DWord);
var Start: DWord; begin Start := GetTickCount; repeat ProcessMessages; until (GetTickCount - Start) > WaitTime; end; Hat jemand eine Idee, woran der falsche Fokus liegen könnte ? lg Sebastian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz