AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie kann ich eine andere Anwendung starten??
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich eine andere Anwendung starten??

Ein Thema von Tommy111 · begonnen am 30. Jan 2005 · letzter Beitrag vom 31. Jan 2005
Antwort Antwort
Benutzerbild von Tommy111
Tommy111

Registriert seit: 2. Nov 2004
Ort: Kirchberg
35 Beiträge
 
Delphi 6 Professional
 
#1

Wie kann ich eine andere Anwendung starten??

  Alt 30. Jan 2005, 19:33
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:
ShellExecute(Application.Handle, 'open' ,PChar(pfad), sw_ShowNormal);
Programmbeschreibung:
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?!
Angehängte Dateien
Dateityp: zip unit3_101.zip (241,0 KB, 4x aufgerufen)
Programmieren macht Spaß..., jedoch nur wenn man das Wirrwar an Befehlen und Funktionen verstanden hat...!!
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Wie kann ich eine andere Anwendung starten??

  Alt 30. Jan 2005, 19:39
moin,

ShellExecute erwartet IMHO sechs Parameter. Probiers mal mit:
ShellExecute(Application.Handle, 'open' ,PChar(pfad), nil, nil, sw_ShowNormal); EDIT 1: Nicht vergessen die Unit ShellAPI einzubinden
EDIT 2: Außerdem solltest du das nächstemal angeben, was nicht funktioniert und welche Fehlermeldungen auftreten, dann kann dir effektiver geholfen werden.
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
Benutzerbild von Tommy111
Tommy111

Registriert seit: 2. Nov 2004
Ort: Kirchberg
35 Beiträge
 
Delphi 6 Professional
 
#3

Re: Wie kann ich eine andere Anwendung starten??

  Alt 31. Jan 2005, 09:47
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:
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.
Also hier will ich noch zusätzlich den Pfad und den Namen der zu öffnenden Anwendung in ein Edit-Fenster schreiben.

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);
Programmieren macht Spaß..., jedoch nur wenn man das Wirrwar an Befehlen und Funktionen verstanden hat...!!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Wie kann ich eine andere Anwendung starten??

  Alt 31. Jan 2005, 09:51
Zitat von Tommy111:
Also hier will ich noch zusätzlich den Pfad und den Namen der zu öffnenden Anwendung in ein Edit-Fenster schreiben.

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);
Ja dann gib es doch einfach an. In deiner Variablen pfad hast du doch alles drinne stehen, was du brauchst.

Im übrigen, das:
Delphi-Quellcode:
      pfad := OpenDialog1.FileName;
      Edit1.Text := ExtractFilePath(pfad) + ExtractFileName(pfad);
kannst du dir sparen. Worum zerlegst du erst den Pfad und fügst ihn dann wieder zusammen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Tommy111
Tommy111

Registriert seit: 2. Nov 2004
Ort: Kirchberg
35 Beiträge
 
Delphi 6 Professional
 
#5

Re: Wie kann ich eine andere Anwendung starten??

  Alt 31. Jan 2005, 10:04
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!!!
Programmieren macht Spaß..., jedoch nur wenn man das Wirrwar an Befehlen und Funktionen verstanden hat...!!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Wie kann ich eine andere Anwendung starten??

  Alt 31. Jan 2005, 10:08
Delphi-Quellcode:
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;
Klappt wunderbar ohne Probleme, wie vermutet.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Tommy111
Tommy111

Registriert seit: 2. Nov 2004
Ort: Kirchberg
35 Beiträge
 
Delphi 6 Professional
 
#7

Re: Wie kann ich eine andere Anwendung starten??

  Alt 31. Jan 2005, 10:17
Hast Recht, es funktioniert.

Liegt bestimmt daran, daß ich die ShellExecute in einer anderen Unit stehen hab! Das muß aber doch auf gehen?!
Programmieren macht Spaß..., jedoch nur wenn man das Wirrwar an Befehlen und Funktionen verstanden hat...!!
  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 13:48 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