AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

externe Applikation

Ein Thema von force · begonnen am 24. Okt 2007 · letzter Beitrag vom 25. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
force

Registriert seit: 23. Okt 2005
13 Beiträge
 
#1

externe Applikation

  Alt 24. Okt 2007, 20:50
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: externe Applikation

  Alt 24. Okt 2007, 20:54
ShellExecute()
Markus Kinzler
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: externe Applikation

  Alt 24. Okt 2007, 20:56
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
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: externe Applikation

  Alt 24. Okt 2007, 21:09
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: externe Applikation

  Alt 24. Okt 2007, 21:34
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).
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: externe Applikation

  Alt 24. Okt 2007, 21:48
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: externe Applikation

  Alt 25. Okt 2007, 05:35
MSDN-Library durchsuchenWinExec ist veraltet und sollte nicht mehr verwendet werden. Nur als Ergänzung.
  Mit Zitat antworten Zitat
25. Okt 2007, 09:14
Dieses Thema wurde von "Phoenix" von "VCL / WinForms / Controls" nach "Windows API / MS.NET Framework API" verschoben.
Hier gehts aber nicht im Komponenten...
force

Registriert seit: 23. Okt 2005
13 Beiträge
 
#9

Re: externe Applikation

  Alt 25. Okt 2007, 14:30
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

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]
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)
Online

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#10

Re: externe Applikation

  Alt 25. Okt 2007, 14:33
Es heisst kompilieren.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:00 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