AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Start von Dialog + Einladen einer Datei [externe Anwendung]
Thema durchsuchen
Ansicht
Themen-Optionen

Start von Dialog + Einladen einer Datei [externe Anwendung]

Ein Thema von TypusMensch · begonnen am 5. Sep 2006 · letzter Beitrag vom 5. Sep 2006
Antwort Antwort
TypusMensch

Registriert seit: 29. Aug 2003
Ort: Goth-A
182 Beiträge
 
Delphi 7 Enterprise
 
#1

Start von Dialog + Einladen einer Datei [externe Anwendung]

  Alt 5. Sep 2006, 16:32
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;
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Start von Dialog + Einladen einer Datei [externe Anwendu

  Alt 5. Sep 2006, 16:35
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!

  Mit Zitat antworten Zitat
TypusMensch

Registriert seit: 29. Aug 2003
Ort: Goth-A
182 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Start von Dialog + Einladen einer Datei [externe Anwendu

  Alt 5. Sep 2006, 16:37
1. nein is es nicht.
2. funktioniert nicht, habe ich schon probiert.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz