05. november 2002 - 13:40Der er
9 kommentarer og 1 løsning
Process Handle??
hejsa!
jeg sidder og roder med noget kode som kan starte og afslutte en process...
jeg bruger denne funktion til at starte min process
function ExecAndWait(Filename, Parameter: string; nCmdShow: integer): longword; var zAppName: array[0..max_path] of char; zParameter: array[0..max_path] of char; zCurDir: array[0..max_path] of char; StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; begin StrPCopy(zAppName,FileName); StrPCopy(zParameter,Parameter); StrPCopy(zCurDir,GetCurrentDir()); FillChar(StartupInfo,Sizeof(StartupInfo),#0); StartupInfo.cb:=Sizeof(StartupInfo); StartupInfo.dwFlags:=STARTF_USESHOWWINDOW; StartupInfo.wShowWindow:=nCmdShow; if not CreateProcess(zAppName,zParameter,nil,nil,false,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil,nil,StartupInfo,ProcessInfo) then Result:=0 else begin WaitforSingleObjectProcessInfo.hProcess,INFINITE); GetExitCodeProcess(ProcessInfo.hProcess,Result); end; end;
Det fungerer også fint på en masse programmer MEN BARE IKKE DET JEG VIL STARTE!!! :(
det er her det går galt(mit program stopper med at svare): WaitforSingleObjectProcessInfo.hProcess,INFINITE);
min process starter fint op.... hvad er der galt??? kan det have noget at gøre med at processen ligger sig nede i taskbaren??
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
procedure TForm1.CreateNotepad; var startinfo : TStartupInfo; processinfo : TProcessInformation; begin FillChar(startinfo,SizeOf(TStartupInfo),0); with startinfo do begin cb := SizeOf(TStartupInfo); dwFlags := STARTF_FORCEONFEEDBACK or STARTF_FORCEOFFFEEDBACK end;
CreateProcess('C:\windows\notepad.exe', '', Nil, 0, False, CREATE_DEFAULT_ERROR_MODE or CREATE_NEW_PROCESS_GROUP or NORMAL_PRIORITY_CLASS, Nil ,'c:\windows\desktop', startinfo,processinfo); with processinfo do begin Label1.Caption := 'Process Handle : ' + IntToHex(hProcess,8); Label2.Caption := 'Thred Handle : ' + IntToHex(hThread,8); Label3.Caption := 'Process ID : ' + IntToHex(dwProcessId,8); Label4.Caption := 'Thred ID : ' + IntToHex(dwThreadId,8); end;
end;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.