AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Problem ShellExecute / CreateProcess + Wait mit Vista UAC
Thema durchsuchen
Ansicht
Themen-Optionen

Problem ShellExecute / CreateProcess + Wait mit Vista UAC

Ein Thema von Assertor · begonnen am 14. Mai 2007 · letzter Beitrag vom 9. Sep 2011
Antwort Antwort
Seite 3 von 4     123 4      
Jester101

Registriert seit: 3. Dez 2007
2 Beiträge
 
#1

Re: Problem ShellExecute / CreateProcess + Wait mit Vista UA

  Alt 2. Mai 2009, 13:23
ExitCode denke ich. Das externe Programm führt eine Berechnung durch und gibt eine 1 zurück wenn alles ok ist und eine andere Zahl, wenn ein Fehler auftritt (die Zahl entspricht dann dem auszugebenden Error Code). Nur falls eine 1 ausgegeben wird, soll das ursprüngliche Programm (von dem das externe Programm gestartet wurde) weiterlaufen. Wenn ich es richtig verstanden habe, dann bräuchte ich ein Handle doch nur, um aus dem startenden Programm bei dem externen Programm zur Laufzeit Veränderung etc. durchzuführen.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Problem ShellExecute / CreateProcess + Wait mit Vista UA

  Alt 2. Mai 2009, 13:44
Hast du das externe Programm selbst geschrieben? Wenn du wirklich den ExitCode meinst, ist das eine komische Verwendung. Normalerweise wird dein Programm mit ExitProcess(0) << ExitCode 0 beendet, um zu signalisieren, dass alles korrekt beendet wurde. ExitCode 1 bedeutet, dass ein Fehler aufgetreten ist.

Naja guck dir mal die MSDN-Library durchsuchenGetExitCodeProcess API an. Vielleicht ist es ja das was du suchst.
  Mit Zitat antworten Zitat
shadowman

Registriert seit: 1. Nov 2005
48 Beiträge
 
#3

Re: Problem ShellExecute / CreateProcess + Wait mit Vista UA

  Alt 31. Mai 2009, 08:16
Hallo zusammen,
im Bezug auf die Antwort #12 hier im Thread and ein paar davor habe ich einige Fragen:

Was findet man in "ShExecInfoA.hProcess" wieder? Ist es die Prozess-ID?
Wenn ja: ist es die, die auch im Taskmanager angezeigt wird?

Ich bekomme nämlich zwei unterschriedliche als Ergebnis.
Wenn die gleich sein müssten: was könnte da falsch laufen?
Wenn "ShExecInfoA.hProcess" nicht die Prozess-ID darstellt: wie komme ich an diese dran?
  Mit Zitat antworten Zitat
Apollonius

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

Re: Problem ShellExecute / CreateProcess + Wait mit Vista UA

  Alt 31. Mai 2009, 09:59
Wie das Präfix h andeutet, handelt es sich um ein Prozess-Handle. Ab Windows XP SP 1 kommst du mit MSDN-Library durchsuchenGetProcessId vom Handle auf die ID.
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
shadowman

Registriert seit: 1. Nov 2005
48 Beiträge
 
#5

Re: Problem ShellExecute / CreateProcess + Wait mit Vista UA

  Alt 1. Jun 2009, 12:12
Danke für die Antwort!

Die Verwendung von GetProcessId scheint allerdings problematisch zu sein, da es diese Funktion eerst ab XP SP1 gibt.

Habe noch das hier gefunden: GetWindowThreadProcessId, aber auch danach habe ich zwei unterschiedliche Werte.

Gibt es denn keine andere Möglichkeit vom Handle zu ProzessID zu gelangen?
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#6

Re: Problem ShellExecute / CreateProcess + Wait mit Vista UA

  Alt 1. Jun 2009, 13:15
NtQueryInformationProcess, aber ich bin nicht sicher, ob die ProcessID in Win2000 damit ermittelt werden kann.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
MyFirstPascalWasTP4

Registriert seit: 30. Jun 2009
2 Beiträge
 
Delphi 5 Professional
 
#7

Re: Problem ShellExecute / CreateProcess + Wait mit Vista UA

  Alt 30. Jun 2009, 21:24
Zitat von himitsu:
Delphi-Quellcode:
function ExecAndWait(Filename, Params: String;
                     WindowState: Word = SW_SHOWNORMAL): boolean;
var
  {$IFDEF UNICODE} ShExecInfoW: SHELLEXECUTEINFOW; {$ENDIF}
  ShExecInfoA: SHELLEXECUTEINFOA;
.
.
.
Eine kleine Verständnisfrage: Dass ich ShExecInfo?.hProcess mit CloseHandle schließen muss, ist ja klar (und wird hier auch gemacht). Aber was ist mit dem Parameter hInstApp? Dort wird entweder ein Fehlercode (Wert <= 32) oder eben ein Handle (Wert > 32) zurückgegeben. Muss ich dieses Handle nicht ebenfalls schließen?
Es gibt 10 Arten von Menschen - Solche, die das Binärsystem verstehen und Solche, die es nicht verstehen.
  Mit Zitat antworten Zitat
Apollonius

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

Re: Problem ShellExecute / CreateProcess + Wait mit Vista UA

  Alt 30. Jun 2009, 21:31
Zitat:
Although hInstApp is declared as an HINSTANCE for compatibility with 16-bit Windows applications, it is not a true HINSTANCE. It can be cast only to an int and compared to either 32 or the following SE_ERR_XXX error codes.
Aber auch echte HInstances musst du grundsätzlich nicht schließen, da es keine Kernel-Handles sind, sondern Zeiger.
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
MyFirstPascalWasTP4

Registriert seit: 30. Jun 2009
2 Beiträge
 
Delphi 5 Professional
 
#9

Re: Problem ShellExecute / CreateProcess + Wait mit Vista UA

  Alt 30. Jun 2009, 21:43
Danke für die schnelle Antwort.
Es gibt 10 Arten von Menschen - Solche, die das Binärsystem verstehen und Solche, die es nicht verstehen.
  Mit Zitat antworten Zitat
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#10

Re: Problem ShellExecute / CreateProcess + Wait mit Vista UA

  Alt 22. Aug 2009, 07:16
eigenes Thema erstellt...
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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