Newsgroup: it.comp.lang.delphi
Titolo: sospendere l'esecuzione

ho un problema da porvi.
Quando io avvio un eseguibile con Shellexecute la funzione mi ritorna subito
senza attendere che l'eseguibile lanciato termini di girare. Non č che
esiste un modo per sospendere l'esecuzione del mio programma finchč
l'eseguibile lanciato con shellexecute non viene chiuso? Grazie in anticipo
a tutti coloro che vorrano rispondere alla mia domanda

 l'eseguibile lanciato con shellexecute non viene chiuso? 
Per attendere che l'eseguibile lanciato termini devi usare la 
"WaitForSingleObject", perň per lanciare l'eseguibile non devi usare piů
"ShellExecute", ma "CreateProcess"...di eseguito ti riporto una funzione 
che si basa proprio su quanto ho appena detto. 
-----STRART------
function ExecuteFileAndWait(FileName:String):Boolean;
var
   StartupInfo: TStartupInfo;
   ProcessInfo: TProcessInformation;
   NomeFile: array[0..MaxPath] of Char;
begin
     StrPCopy(NomeFile, FileName);
     FillChar(StartupInfo, Sizeof(StartupInfo), #0);
     StartupInfo.cb:=Sizeof(StartupInfo);
     StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
     StartupInfo.wShowWindow:=1;
     Result:=CreateProcess(NomeFile,nil,nil,nil,False,
                        CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
                        nil,nil,StartupInfo,ProcessInfo);
     if Result
        then
            begin
                 WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
                 CloseHandle(ProcessInfo.hProcess);
            end;
end;
---------END-------------
Ciao...Trunks...e salutami Vegeta!
W Dragonball! :-)....
-- 
DeViL! 
Per rispondere in privato, togliere ILDISTURBO ;-)
"...mi butti giu', torno su: e' la mia virtu'..." (ST)

W Dragonball! :-)....
Goku si č ripreso...cmq Gohan č il migliore!
Ola!
--
- Carlo -

 Ola!
Ciaoo!


Vabbuo' siamo caduti nell'OT...ma per una buona causa...:)
Seeee magari ce lo potessimo vedere DBGT.... eh sì perchè credo proprio che
passeranno un altro paio d'anni prima che lo trasmettano... GRRRRR!!!
cmq ci potremo consolare vedendo almeno il Super-Sayan 2 verso la fine di
questa serie.
------------------------------------------------
Ehi DeViL perché non checki la tua posta?

"ShellExecute", ma "CreateProcess"...di eseguito ti riporto una funzione 
Si puo' continuare ad usare ShellExecute nella versione estesa
(ShellExecuteEx).
--
Andrea Laforgia (UIN 87230455)
----------------------------------------------------------
Non scrivetemi per e-mail, se non richiesto espressamente.
No replies in private e-mail, unless explicitly requested.
----------------------------------------------------------

                 CloseHandle(ProcessInfo.hProcess);
Attenzione, ci vuole la CloseHandle anche dell'handle del thread
primario.


Grazie dell'aiuto DeViL!
uhm...dato che sei così bravo...
ti butto là pure quest'altra domand(on)a:
innanzitutto premetto che sto lavorando ad una specie di console per
interfacciare un eseguibile "command-line" veramente bastardo:
stò gran bastardo d'un programma ha bisogno di stare in primo piano per
lavorare al massimo della velocità... che bastardo!!! (forse me la dovrei
prendere col programmatore) Infatti appena viene minimizzato o passa in
secondo piano... PUFF... va ad 1/50 della velocità sigh!
per cui io avrei bisogno di una funzione o un insieme di esse che mi
facciano stare il bastardo sempre là davanti,  ma non è tutto. Infatti la
visione continuata della finestrella DOS del bastardo non è che mi piace
granchè dunque... perchè non usare pure qualche bella funzione (se esiste)
che mi nasconda la finestra in primo piano???
uhm... non so se mi risponderai pure stavolta eheheh...
-------------------------------------------------
Yeah fratello DRAGONBALL IS THE BEST!

 ha scritto...
[message cut] 
Ti ho rispoto alla mail che avevi postato in privato visto che questo 
messaggio ancora non c'era qui.
Ciao.
