![]() |
Wie kann ich eine andere Anwendung starten??
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich will aus einem eigenen Programm ein anderes (im Beispiel c:\test\xy.exe) starten. Den Pfad, aus dem das andere Programm gestartet werden soll, steht in einem Edit Feld als String in meinem eigenen Programm. Den String hab ich pfad genannt. Hab folgendes probiert:
Code:
Programmbeschreibung:
ShellExecute(Application.Handle, 'open' ,PChar(pfad), sw_ShowNormal);
Mit dem Button Start auf Form2 will ich also das andere Programm, daß sich in dem angegebenen Pfad in Edit1 auf Form3 befindet, starten. Das Programm befindet sich im Anhang! Hat jemand von euch ne Idee, was ich da schon wieder falsch gemacht hab, oder sogar ne Lösung für mich?! |
Re: Wie kann ich eine andere Anwendung starten??
moin,
ShellExecute erwartet IMHO sechs Parameter. Probiers mal mit:
Delphi-Quellcode:
EDIT 1: Nicht vergessen die Unit ShellAPI einzubinden
ShellExecute(Application.Handle, 'open' ,PChar(pfad), nil, nil, sw_ShowNormal);
EDIT 2: Außerdem solltest du das nächstemal angeben, was nicht funktioniert und welche Fehlermeldungen auftreten, dann kann dir effektiver geholfen werden. |
Re: Wie kann ich eine andere Anwendung starten??
moin,
also das mit dem ShellExecute hat jetz geklappt. Danke. Aber wenn ich jetz eine *.exe Datei aufrufen will, öffnet der mir immer nur den Ordner wo diese Anwendung drinsteht, aber net die Anwendung selbst! Folgendes steht:
Code:
Also hier will ich noch zusätzlich den Pfad und den Namen der zu öffnenden Anwendung in ein Edit-Fenster schreiben.
implementation
{$R *.dfm} procedure TForm3.Button1Click(Sender: TObject); begin with OpenDialog1 do begin Filter := 'App Files (*.exe)|*.exe|All Files(*.*)|*.*'; DefaultExt := 'exe'; if OpenDialog1.Execute then begin pfad := OpenDialog1.FileName; Edit1.Text := ExtractFilePath(pfad) + ExtractFileName(pfad); end; end; end; procedure TForm3.BitBtn1Click(Sender: TObject); begin close end; procedure TForm3.Button2Click(Sender: TObject); begin Edit1.Undo; end; end. So, un jetz will ich das im Edit-Fenster angegebene Programm über einen anderen Button starten.
Code:
ShellExecute(Application.Handle, 'open' ,PChar(pfad), nil, nil, sw_ShowNormal);
|
Re: Wie kann ich eine andere Anwendung starten??
Zitat:
Im übrigen, das:
Delphi-Quellcode:
kannst du dir sparen. Worum zerlegst du erst den Pfad und fügst ihn dann wieder zusammen?
pfad := OpenDialog1.FileName;
Edit1.Text := ExtractFilePath(pfad) + ExtractFileName(pfad); |
Re: Wie kann ich eine andere Anwendung starten??
Ja aber der öffnet nicht direkt die Anwendung. Ich bekomm immer nur den Ordner geöffnet wo die Anwendung drinsteht! Ich will ja, daß der mir das Programm sofort öffnet, nachdem ich auf den Button gedrückt hab!!!
|
Re: Wie kann ich eine andere Anwendung starten??
Delphi-Quellcode:
Klappt wunderbar ohne Probleme, wie vermutet.
uses
ShellAPI; procedure TForm1.Button1Click(Sender: TObject); var pfad: String; begin if OpenDialog1.Execute then begin pfad := OpenDialog1.FileName; ShellExecute(Application.Handle, 'open' ,PChar(pfad), nil, nil, sw_ShowNormal); end; end; |
Re: Wie kann ich eine andere Anwendung starten??
Hast Recht, es funktioniert.
Liegt bestimmt daran, daß ich die ShellExecute in einer anderen Unit stehen hab! Das muß aber doch auf gehen?! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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