IsTerminated : Cardinal;
로 선언하세요.
김규성 님이 쓰신 글 :
:
:
:
: [Error] Test.pas(194): Types of actual and formal var parameters must be identical 이 에러가 무슨에러인가요?
소스는 아래와 같은데요. 인터넷에 올려져있는걸 그대로 사용한겁니다.
: 에러난 문장은 아래 파란색 부분이고요.
function TForm1.AsyncShell(FilePath, CmdLine:string) : Boolean; var StartInfo : TStartupInfo; ProcessInfo : TProcessInformation; bCreatedOk : Boolean; IsTerminated : Integer; begin FillChar( StartInfo, Sizeof(TStartupInfo), #0); FillChar( ProcessInfo, Sizeof(TProcessInformation), #0);
StartInfo.cb := sizeof(StartInfo); StartInfo.dwFlags := STARTF_USESTDHANDLES + STARTF_FORCEONFEEDBACK;
// 매개변수가 있을 경우와 없을 경우를 달리호출한다. if CmdLine <> '' then bCreatedOk := CreateProcess(PChar(FilePath), PChar(CmdLine), nil, nil, false, DETACHED_PROCESS + HIGH_PRIORITY_CLASS, nil, nil, StartInfo, ProcessInfo ) else bCreatedOk := CreateProcess(nil, PChar(FilePath), nil, nil, false, DETACHED_PROCESS + HIGH_PRIORITY_CLASS, nil, nil, StartInfo, ProcessInfo ); if bCreatedOk then begin while True do begin GetExitCodeProcess(ProcessInfo.hProcess, IsTerminated); if (IsTerminated = 0) or (IsTerminated = 1) then Break; Application.ProcessMessages; end; end; CloseHandle(ProcessInfo.hProcess);
Result := True; end; |