![]() |
Start von Dialog + Einladen einer Datei [externe Anwendung]
Folgendes Problem.. Ich starte eine externe Anwendung. Danach emuliert er einen Tastedruck (Strg+O). Es erscheint der Öffnen-Dialog. Hier soll nun in die Edit eine Datei eingelesen werden. Am Ende noch ein Enter.
Problem ist jetzt folgendes. Dem Programm gehen die Befehle wohl einfach zu schnell. Er arbeitet die Befehle schneller ab, als die einzelnen Sachen geladen werden. Ich habe es schon mit while (wnd=0) do wnd := FindWindow('WinGUI','testprogramm'); oder IsWindowVisible versucht, leider ohne Erfolg. Ich glaube so n pause-befehl macht wenig sinn, da ja viele systeme unterschiedlich lange benötigten. Kennt jemand einen ausweg? lade ich alles einzeln (quasi alle 3 buttons ruhig nacheinander), dann funktioniert das wunderbar. es liegt also nicht am bisherigen quellcode. Hier der Code:
Delphi-Quellcode:
uses.. shellAPI, sndkeys32......
procedure TForm1.Button3Click(Sender: TObject); begin ShellExecute(Handle, 'open', PChar(ExtractFileDir(Application.ExeName)+'\testprogramm.exe'), nil, nil, SW_SHOWNORMAL); //Button1Click(nil); end; procedure TForm1.Button1Click(Sender: TObject); var wnd:HWND; begin wnd := FindWindow('WinGUI','testprogramm'); if wnd <> 0 then if Appactivate(wnd)=True then Sendkeys(pansichar('^o'),TRUE); //Button2Click(nil); end; procedure TForm1.Button2Click(Sender: TObject); var wnd:HWND; text:string; begin wnd := FindWindow('#32770',nil); wnd := FindWindowEx(wnd, 0, 'ComboBoxEx32', nil); wnd := FindWindowEx(wnd, 0, 'ComboBox', nil); wnd := FindWindowEx(wnd, 0, 'Edit', nil); if wnd <> 0 then begin Windows.SetFocus(wnd); text:='C:\testfile.zip'; SendMessage(wnd, WM_SETTEXT, 0, Integer(PChar(text))); if Appactivate(wnd)=True then Sendkeys(pansichar('{enter}'),TRUE); end else showmessage('NOT FOUND'); end; |
Re: Start von Dialog + Einladen einer Datei [externe Anwendu
erstmal zwei Fragen:
1. Ist dieses 2. Programm von dir? Wenn ja, wieso frickelst du dann so rum? 2. Wenn es nicht von dir ist, dann stelle doch erstmal sicher, dass das, was du willst, nicht per Parameterübergabe gemacht werden kann! |
Re: Start von Dialog + Einladen einer Datei [externe Anwendu
1. nein is es nicht.
2. funktioniert nicht, habe ich schon probiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 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