Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie lasse ich ein anderes Programm laufen? (https://www.delphipraxis.net/64993-wie-lasse-ich-ein-anderes-programm-laufen.html)

qb-tim 10. Mär 2006 20:30


Wie lasse ich ein anderes Programm laufen?
 
Hallo,

dies ist das erste Mal für mich...

Ich programmiere mit Delphi 6.0 Proffesional seit zwei Wochen und schreibe schon "sehr beeindruckende" (Zitat: Mathematik-/Informatiklehrer).

Jetzt zu meiner Frage:

Wie kann ich mit Delphi auf ButtonClick (siehe unten) ein anderes Programm starten lassen?
(In QuickBasic war gab es die Befehle "RUN" und "SHELL")
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 //ein Befehl, der einen anderen Programm startet
end;
gez. TIM

ManuMF 10. Mär 2006 20:32

Re: Wie lasse ich ein anderes Programm laufen?
 
Delphi-Quellcode:
uses ShellAPI;

ShellExecute(Application.Handle, nil, 'Programm', 'Parameter', 'Pfad', SW_SHOWNORMAL);
Gruß,
ManuMF

qb-tim 11. Mär 2006 07:57

Re: Wie lasse ich ein anderes Programm laufen?
 
Nehmen wir an ich möchte "C:\Programme\project1.exe" starten; was muss ich an...
Zitat:

Delphi-Quellcode:
ShellExecute(Application.Handle, nil, 'Programm', 'Parameter', 'Pfad', SW_SHOWNORMAL);

...ändern?

Waldteufel 11. Mär 2006 08:07

Re: Wie lasse ich ein anderes Programm laufen?
 
Hi QB-Tim. :hi:

Delphi-Quellcode:
ShellExecute(Application.Handle, nil, 'C:\Programme\project1.exe', nil, 'C:\Programme', SW_SHOWNORMAL);
Statt dem 2. Parameter nil könnte hier auch 'print' stehen, falls du eine Datei drucken willst, oder 'explore', wenn du einen Ordner im Explorer öffnen willst.
Statt SW_SHOWNORMAL wäre hier auch z.B. SW_HIDE möglich, damit die Anwendung im Hintergrund unsichtbar läuft.

Wie du siehst, gibt es hier viel mehr Möglichkeiten als in QB.

ManuMF 11. Mär 2006 11:31

Re: Wie lasse ich ein anderes Programm laufen?
 
Hallo,

kleine Korrektur ;-) : wenn die Pfadangabe drin ist, muss sie nicht nochmals angegeben werden.
Delphi-Quellcode:
ShellExecute(Application.Handle, nil, 'project1.exe', nil, 'C:\Programme', SW_SHOWNORMAL);
oder eben
Delphi-Quellcode:
ShellExecute(Application.Handle, nil, 'C:\Programme\project1.exe', nil, nil, SW_SHOWNORMAL);
Gruß,
ManuMF

Waldteufel 11. Mär 2006 11:37

Re: Wie lasse ich ein anderes Programm laufen?
 
@ManuMF: Bist du dir sicher? :gruebel:

Nehmen wir mal an, es existiert sowohl im aktuellen Verzeichnis als auch unter C:\Programme eine Datei namens project1.exe.

Wird dann bei
Delphi-Quellcode:
ShellExecute(Application.Handle, nil, 'project1.exe', nil, 'C:\Programme', SW_SHOWNORMAL);
die unter C:\Programme gestartet, oder die im aktuellen Arbeitsverzeichnis, aber mit dem Arbeitsverzeichnis C:\Programme?

ManuMF 11. Mär 2006 11:40

Re: Wie lasse ich ein anderes Programm laufen?
 
Eigentlich schon ;-)

Dann wird die EXE in C:\Programme gestartet, soweit ich weiß. Für das gestartete Programm ist das dann auch das Arbeitsverzeichnis.

Gruß,
ManuMF

[edit]Ich hab es ausprobiert. Wenn die gewünschte Datei in einem anderen Verz. liegt als dem aktuellen, is es egal, ob man den Pfad als Pfad mitgibt oder Pfad leer lässt und als Namen mitgibt.[/edit]

xZise 16. Mär 2006 14:03

Re: Wie lasse ich ein anderes Programm laufen?
 
Kann ich eigentlich damit auch einen Wert für ParamStr(1) übergeben?

edit ähm ich meinte 1 ^^ /edit

Luckie 16. Mär 2006 14:08

Re: Wie lasse ich ein anderes Programm laufen?
 
Zitat:

Zitat von xZise
Kann ich eigentlich damit auch einen Wert für ParamStr(0) übergeben?

Code:
ShellExecute(Application.Handle, nil, 'Programm', [b]'Parameter'[/b], 'Pfad', SW_SHOWNORMAL);

xZise 16. Mär 2006 14:11

Re: Wie lasse ich ein anderes Programm laufen?
 
Okay ;) Danke ^^

(hatte mir das schon irgendwie sowetwas gedacht :D )


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 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