AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ShellExecute wird erst nach Programmende ausgeführt
Thema durchsuchen
Ansicht
Themen-Optionen

ShellExecute wird erst nach Programmende ausgeführt

Ein Thema von Diamondback2007 · begonnen am 17. Jul 2008 · letzter Beitrag vom 17. Jul 2008
Antwort Antwort
Benutzerbild von Diamondback2007
Diamondback2007

Registriert seit: 2. Feb 2007
260 Beiträge
 
Delphi 2007 Professional
 
#1

ShellExecute wird erst nach Programmende ausgeführt

  Alt 17. Jul 2008, 08:50
Hallo,

ich habe ein Problem im Zusammenhang mit ShellExecute.

Mit folgender zeile möchte ich in einer Konsolenanwedung eine andere exe öffnen.
ShellExecute(0, PChar('open'), PChar(SetupPath), PChar(''), PChar(''), SW_SHOW); Dies klappt allerdings seit neustem nicht mehr. Warum das so ist kann ich nicht sagen, ich habe absolut keine Ahnung.
Das Problem ist, dass die Exe erst gestartet wird nachdem das Konsolenprogramm geschlossen wurde...
Der Code der nach dem Aufruf steht klappt aber wunderbar. Es wird nur kurz der Zeiger für Hintergrundaktivität angezeigt und dann macht das Programm ganz normal weiter...
Bzw auch nicht weil ich darauf warte, dass der Prozess gestartet wurde, was aber ja nicht der Fall ist.

Schließe ich nun das Programm, so wird sofort meine Exe gestartet...
Ich habe keinerlei Ahnung was da schief läuft...
Als Rückgabewert von ShellExecute bekomme ich 42.

Vielleicht kann mir ja jemand helfen

gruß

Crosspost DF: http://www.delphi-forum.de/viewtopic.php?t=85023
Fabian E.
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: ShellExecute wird erst nach Programmende ausgeführt

  Alt 17. Jul 2008, 10:29
Wird nur eine bestimmte Exe nicht angezeigt oder ist es bei allen so? Und funktioniert es, wenn du diese Zeile in ein leeres Projekt einfügst?
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von Diamondback2007
Diamondback2007

Registriert seit: 2. Feb 2007
260 Beiträge
 
Delphi 2007 Professional
 
#3

Re: ShellExecute wird erst nach Programmende ausgeführt

  Alt 17. Jul 2008, 10:45
Hmm... Nein mit dieser Datei klappt es einfach nicht. Kann das vielleicht am Handle liegen? Ich übergebe ja praktisch keins...
Mit einer anderendatei klappts. Im leeren projekt nicht.
Fabian E.
  Mit Zitat antworten Zitat
Benutzerbild von Diamondback2007
Diamondback2007

Registriert seit: 2. Feb 2007
260 Beiträge
 
Delphi 2007 Professional
 
#4

Re: ShellExecute wird erst nach Programmende ausgeführt

  Alt 17. Jul 2008, 10:48
Okay...
In einem VCl-Projekt klappts...
naja muss ich wohl VCL nehmen...
Fabian E.
  Mit Zitat antworten Zitat
Benutzerbild von Poseidon
Poseidon

Registriert seit: 8. Jul 2008
113 Beiträge
 
Delphi 2005 Personal
 
#5

Re: ShellExecute wird erst nach Programmende ausgeführt

  Alt 17. Jul 2008, 10:51
Kommt mir irgendwie bekannt vor
Ok, jetzt zu meiner hilfe:
Code:
 ShellExecute(0, nil, PChar('C:\programm.exe'), nil, nil, SW_SHOWNORMAL);
So mach's ich immer, sollte futzen. Shellapi in uses nicht vergessen

Mist zu spät
Im Zweifelsfall immer das Richtige tun
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: ShellExecute wird erst nach Programmende ausgeführt

  Alt 17. Jul 2008, 10:59
Zitat von Diamondback2007:
Okay...
In einem VCl-Projekt klappts...
naja muss ich wohl VCL nehmen...
Es muss auch in einem Konsolenprogramm und ohne die VCL gehen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Poseidon
Poseidon

Registriert seit: 8. Jul 2008
113 Beiträge
 
Delphi 2005 Personal
 
#7

Re: ShellExecute wird erst nach Programmende ausgeführt

  Alt 17. Jul 2008, 11:03
Code:
ShellExecute(0, nil, PChar('C:\programm.exe'), nil, nil, SW_SHOWNORMAL);
Das futzt immer, nich nur bei VCL (bei mir zumindest )
Im Zweifelsfall immer das Richtige tun
  Mit Zitat antworten Zitat
Benutzerbild von Diamondback2007
Diamondback2007

Registriert seit: 2. Feb 2007
260 Beiträge
 
Delphi 2007 Professional
 
#8

Re: ShellExecute wird erst nach Programmende ausgeführt

  Alt 17. Jul 2008, 11:10
Zitat von Luckie:
Zitat von Diamondback2007:
Okay...
In einem VCl-Projekt klappts...
naja muss ich wohl VCL nehmen...
Es muss auch in einem Konsolenprogramm und ohne die VCL gehen.
Ist mir auch klar.. Es lief ja auch nur plötzlich halt nicht mehr...

Zitat von Poseidon:
Jo sry hatte ich vergessen zu posten

Naja bekommt mein Chef halt ein VCL Programm statt einer Konsole.

ehrlich gesagt habe ich nämlich nicht wirklich Lust da jetzt auf große Fehlersuche zu gehen, da das Programm was ich starte mir schon genug Sorgen bereitet

Trotzdem danke
Fabian E.
  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 22:15 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