JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=69610a90818b591f7a1984cf78ca36a3Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

ShellExecute vollständig beendet...

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 19.02.2006, 20:30    Titel: ShellExecute vollständig beendet... Antworten mit Zitat

Hi,

gibts ne Möglichkeit zu bestimmen, ob ShellExecute "vollständig beendet" ist?
D.h. ich rufe mit ShellExecute() eine exe auf, die wiederum eine Datei erstellt. Nun möchte ich abfragen, ob diese Datei schon fertig erstellt ist. Geht sowas in C++?
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 19.02.2006, 20:50    Titel: Antworten mit Zitat

Versuche mal entweder die HINSTANCE hier rein zu legen:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/waitforsingleobject.asp

oder starte dein Programm mit CreateProcess und versuche es damit.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 49
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 20.02.2006, 09:09    Titel: Antworten mit Zitat

Wenn du ShellExecuteEx() verwendetest, bekommst du mit hProcess ein Handle der gestarteten Applikation. Dann kannst du WaitForSingleObject() verwenden (Fallens Link). Mit dem was ShellExecute() zurückgibt kann man wenig anfangen.

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 20.02.2006, 20:08    Titel: Antworten mit Zitat

Danke, klappt leider noch nicht so ganz =/

Dieser Code liefert mir jedenfalls für shell_process ein leeres Handle Confused
Die MessageBox kommt (wie es am logischsten ist) unmittelbar nach dem Ausführen.
<edit>
Die Anwendung wird auf jeden Fall gestartet, daran kanns nicht liegen Wink
</edit>
CPP:
   /*********************************
   [[[ ¡¡¡ABSOLUTER BLÖDSINN!!! ]]]
   ********************************/

   //Öffnen der Anwendung vorbereiten...
   SHELLEXECUTEINFO shellexeinfo;
   HANDLE shell_process=0;

   memset(&shellexeinfo,0,sizeof(SHELLEXECUTEINFO));
   shellexeinfo.cbSize=sizeof(SHELLEXECUTEINFO);
   shellexeinfo.fMask=SEE_MASK_NOCLOSEPROCESS ;
   shellexeinfo.hwnd=_gui::main_dialog;
   shellexeinfo.lpFile=path;
   shellexeinfo.lpParameters=params;
   shellexeinfo.lpDirectory=directory;
   shellexeinfo.nShow=SW_SHOW;
   shellexeinfo.hProcess=shell_process;
   shellexeinfo.hInstApp=GetModuleHandle(0);

   //Anwendung ausführen
   ShellExecuteEx(&shellexeinfo);

   //Auf Anwendung warten
   WaitForSingleObject(shell_process,0);

   //Fertig...
   MessageBox(0,"Feddisch","=)",0);

_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...


Zuletzt bearbeitet von The Lord of Programming am 20.02.2006, 20:39, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 20.02.2006, 20:20    Titel: Antworten mit Zitat

am besten guckst du dir mal den Errorcode an, der in hInstApp gespeichert wird nach dem aufruf. Dazu musst du das zu nem int casten und mit folgenden Errorcodes vergleichen:
Code:
SE_ERR_FNF
File not found.
SE_ERR_PNF
Path not found.
SE_ERR_ACCESSDENIED
Access denied.
SE_ERR_OOM
Out of memory.
SE_ERR_DLLNOTFOUND
Dynamic-link library not found.
SE_ERR_SHARE
Cannot share an open file.
SE_ERR_ASSOCINCOMPLETE
File association information not complete.
SE_ERR_DDETIMEOUT
DDE operation timed out.
SE_ERR_DDEFAIL
DDE operation failed.
SE_ERR_DDEBUSY
DDE operation is busy.
SE_ERR_NOASSOC
File association not available.

wenn der int >32 ist, gabs keine fehler...

Gruß DirectXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 20.02.2006, 20:34    Titel: Antworten mit Zitat

Vergesst es, ich hab die Lösung gefunden Laughing (Dummheit Rolling Eyes )

Die MSDN schreibt eindeutig:
Zitat:
HANDLE hProcess;

und nich
Zitat:
HANDLE* hProcess;

Razz

Also, Blödsinn diese Zeilen:
CPP:
shellexeinfo.hProcess=shell_process;
WaitForSingleObject(shell_process,0);


Stattdessen direkt auf die Membervariable zugreifen:
CPP:
WaitForSingleObject(shellexeinfo.hProcess,INFINITE);


Danke nochmal, funktioniert super Smile
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum