cs_ManChesTer
Messages postés374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 janvier 2021 31 janv. 2006 à 17:51
Voici un code qui ne me pose aucun problemes (adapter le path dans certans cas.....)
Function RunAndWait(Fname:String;TimeOut:Longint):Boolean; // Execute a file and wait until the end
var SInfo : TStartupInfo;
PInfo : TProcessInformation;
begin
Result:=False;
FillChar(SInfo,SizeOf(SInfo),0);
SInfo.cb:=SizeOf(TStartupInfo);
SInfo.dwFlags:=STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
SInfo.wShowWindow:=SW_SHOW;
if CreateProcess(nil,Pchar(Fname),nil,nil,False,NORMAL_PRIORITY_CLASS,nil,nil,SInfo,PInfo) then
if not WaitForSingleObject(PInfo.hProcess,TimeOut)=WAIT_FAILED then
Result:=True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var Windir : Array[0..Max_Path] of Char;
DirOf : String;
j : integer;
begin
GetWindowsDirectory(Windir,Max_PAth);
DirOf:=String(Windir)+'\System32\DllCache\Msinfo32.Exe /report c:\MesInfo.txt';
RunAndWait(DirOf,-1); // lancer MsInfo32 et attendre qu'il se ferme
j:=0;
repeat
Sleep(10); // attendre que le fichier soit dispo....
inc(j);
until (fileexists('c:\MesInfo.txt')) or (j>100);
if j<=100 then
Memo1.Lines.LoadFromFile('c:\MesInfo.TXT')
else
Showmessage('Fichier info introuvable....');
end;