Newsgroup: it.comp.lang.delphi
Titolo: Controllo del codice dopo lancio procedura Batch

Ciao a tutti,
io da un mio programma lancio una file .BAT con la funzione ShellExecute 
, purtroppo il codice prosegue e non aspetta che la procedura batch 
finisca...
Come posso tenere sotto controllo l'esecuzione del mio file BAT?
Avrei la necessità di fare delle operazioni appena la procedura finisce 
e non prima...
Grazie 1000

e non prima...
shellexecute che attende la chiusura della finestra del batch che hai
lanciato: dovrebbe essere una FAQ, cerca perche' ora non ce l'ho sottomano.
ciao
-- 
Morde. 
(
mo...@despammed.com
)
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

 lanciato: dovrebbe essere una FAQ, cerca perche' ora non ce l'ho sottomano.
trovato e vi allego il risultato se a qualcuno può essere utile
Ciao
tombat
Eseguire un programma e attendere  che termini
{ Avvia un programma ed aspetta la sua chiusura prima di procedere.
I parametri:
cProgram: contiene nome.estensione del programma da eseguire
           (come accennato può essere un bat ma anche un exe o un com).
           E' possibile per altro scrivere una cosa del tipo
           WinExecAndWait( 'miobat.bat par1 par2 par3', 0 )
           dove par1, par2, par3 sono i parametri che saranno elaborati dal
batch
           la funzione assume che il programma da eseguire si trovi nella
stessa
           directory dell'applicazione delphi infatti la prima riga della
           function cita
           cWorkDir := ExtractFilePath( Application.EXEName )
           ma nulla vieta di cambiare il tutto.
nVisibility:  è il modo di visualizzazione della finestra dos che viene
creata
               ma ho avuto alcuni problemi nella gestione del parametro 
e per
               il momento la funzione all'interno usa SW_SHOWDEFAULT fisso
               avrei potuto eliminare il parametro ma...
Il valore di ritorno è 0 se tutto è andato a buon fine qualsiasi altro
Intero se si è verioficato un errore} Non è vero si usa :
STARTF_USESHOWWINDOW
function WinExecAndWait(cProgram: string; nVisibility: integer): integer;
var
   cWorkDir: string;
   StartupInfo: TStartupInfo;
   ProcessInfo: TProcessInformation;
begin
   cWorkDir:='';
   FillChar( StartupInfo, Sizeof( StartupInfo), #0);
   FillChar( ProcessInfo, Sizeof( ProcessInfo), #0);
   StartupInfo.lpReserved     := nil;
   StartupInfo.lpDesktop      := nil;
   StartupInfo.lpTitle        := PChar('DOS process');
   StartupInfo.dwX            := 1;
   StartupInfo.dwY            := 1;
   StartupInfo.dwXSize        := 600;
   StartupInfo.dwYSize        := 400;
   StartupInfo.dwXCountChars  := 80;
   StartupInfo.dwYCountChars  := 25;
   StartupInfo.dwFillAttribute:= 0;
   StartupInfo.cbReserved2    := 0;
   StartupInfo.lpReserved2    := nil;
   StartupInfo.hStdInput      := 0;
   StartupInfo.hStdOutput     := 0;
   StartupInfo.hStdError      := 0;
   StartupInfo.cb             := Sizeof( StartupInfo);    // Ampiezza in 
Byte
della struttura
   StartupInfo.wShowWindow    := STARTF_USESHOWWINDOW   file://correzione
SW_SHOWDEFAULT;          // nVisibility;
   StartupInfo.dwFlags        := STARTF_FORCEONFEEDBACK;
   if not CreateProcess(nil,
                        PChar(cWorkDir+cProgram),
                        nil,
                        nil,
                        false,
                        CREATE_NEW_CONSOLE or CREATE_DEFAULT_ERROR_MODE,
                        getEnvironmentStrings,
                        nil,
                        StartupInfo,
                        ProcessInfo) then
     Result:=-1
   else
     begin
       WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
       GetExitCodeProcess(ProcessInfo.hProcess,Result);
     end;
end;

Ho parlato troppo presto... il codice che ho riportato a me da degli 
errorin questa riga:
GetExitCodeProcess(ProcessInfo.hProcess,Result);
errore: Types of actual and formal var parameters must be identical
cosa può essere? Il tipo di Result è Integer
Uso D5
Grazie

 Grazie
-- 
Ciao, Anto', [37, 143, AQ] 
MB C SC 220 CDI Magma Rot
"Oggi c'č una grande battaglia di idee ma alla 
fine non ci saranno ne vinti, ne vincitori, ne idee!"
S. Benni da Elianto

 
http://www.delphiedintorni.it/geoxml/contentgetnews/{03EAD8A2-716C-4443-8AFA-02681C106DE2}.htm
Il codice che mi hai mandato funziona che č una meraviglia...
Grazie 1000
tombat

 tombat
-- 
Ciao, Anto', [37, 143, AQ] 
MB C SC 220 CDI Magma Rot
"Oggi c'è una grande battaglia di idee ma alla 
