Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi externe Applikation (https://www.delphipraxis.net/102197-externe-applikation.html)

force 24. Okt 2007 20:50


externe Applikation
 
Hallo,

Versuche jetzt seit einiger Zeit ein Programm zu schreiben, mit dem ich über einen Button eine bestimmte externe Applikation ausführen kann und anschließend, wenn sie gestartet ist abzufragen, ob sie läuft.

Kann da jemand helfen? Komme damit nicht wirklich weiter.
Danke

Grüße force

mkinzler 24. Okt 2007 20:54

Re: externe Applikation
 
ShellExecute()

Apollonius 24. Okt 2007 20:56

Re: externe Applikation
 
Hier im Forum suchenShellexecute Hier im Forum suchenShellexecuteEx Hier im Forum suchenCreateProcess
Shellexecute wird immernoch sehr häufig verwendet, obwohl es eigentlich veraltet ist. Wenn du prüfen willst, ob der Prozess läuft, brauchst du dessen Handle, und das kriegst du nur auf die beiden anderen Arten, bei denen musst du dich allerdings mal mit den Parametern auseinandersetzen. Anlaufstelle für Fragen bezüglich dieser Windows-Funktionen ist die MSDN: MSDN-Library durchsuchenCreateProcess. Schauen, ob der Prozess noch läuft, ist mit dem Handle dann fast trivial: MSDN-Library durchsuchenWaitForSingleObject

SirThornberry 24. Okt 2007 21:09

Re: externe Applikation
 
Ich stimme zu das ShellExecute für die Aufgabe ungeeignet ist weil man keine Prozesshandle zurück bekommt. Aber wo steht das es veraltet ist? Im MSDN hab ich da auf die Schnelle nichts gefunden und die sollten es ja wissen.

Apollonius 24. Okt 2007 21:34

Re: externe Applikation
 
Oh, da ist mir wohl was raugerutscht. Veraltet ist es wirklich nicht. Aber es ist nicht unbedingt für Programmstart gedacht sondern eher für das Öffnen irgendeiner Datei und Anderes (diese Interpretation ist nicht auf meinem Mist gewachsen).

Bernhard Geyer 24. Okt 2007 21:48

Re: externe Applikation
 
Zitat:

Zitat von SirThornberry
Aber wo steht das es veraltet ist?

Ich glaube seit Vista und UAC ist es eher umgekehrt. Um nicht noch mehr Probleme mit UAC zu bekommen und damit das erweiterte Manifest auch "wirken" kann sollte man ShellExecute anstatt CreateProcess nehmen.

Matze 25. Okt 2007 05:35

Re: externe Applikation
 
MSDN-Library durchsuchenWinExec ist veraltet und sollte nicht mehr verwendet werden. Nur als Ergänzung.

DP-Maintenance 25. Okt 2007 09:14

DP-Maintenance
 
Dieses Thema wurde von "Phoenix" von "VCL / WinForms / Controls" nach "Windows API / MS.NET Framework API" verschoben.
Hier gehts aber nicht im Komponenten...

force 25. Okt 2007 14:30

Re: externe Applikation
 
Hallo,

Danke für die vielen Antworten. Habe ein bisschen rumexperimentiert, bin jedoch nicht soviel weiter gekommen.
Ich kann nun zwar was kompelieren, aber es tut nicht das, was es soll.

Hier zwei Codebeispiele, die nicht funktionieren :roll:

Sind jetzt zwar in Borland C++ Builder geschrieben, aber ist ziemlich das gleiche, habe vorher auch Borland Delphi benutzt.

Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  WinExec("C:\\lernen.exe", SW_NORMAL);
}
Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  ShellExecute(Handle,NULL,"C:\\lernen.exe",NULL, NULL, SW_MAXIMIZE);
}
Die \\ hinter dem C: und " statt ' sind in C++ normal.

Bei dem WinExec kann ich zwar sauber kompelieren, aber wenn ich dann den Button drücke, passiert nichts.
Bei ShellExecute kann ich auch kompelieren und wenn ich dann den Button drücke, kann ich nur im Eventlog sehen, wie zich ZEilen durchlaufen, aber es passiert absolut garnichts.
ShellApi ist eingebunden.

Hoffe das noch jemand helfen kann.
Danke

Grüße force

[edit=Phoenix]Delphi- in C-Tags geändert. Mfg, Phoenix[/edit]

Phoenix 25. Okt 2007 14:33

Re: externe Applikation
 
Es heisst kompilieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 Uhr.
Seite 1 von 2  1 2      

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