一个等待Winexec执行完成后再继续执行后面代码的函数

//CMD 要执行的文件路径

//Visiable 是否显示窗口

Function WinExecExW(CMD:Pchar; Visiable:integer):DWORD;
var
    StartupInfo : TStartupInfo;
    ProcessInfo : TProcessInformation;
begin
    FillChar( StartUpInfo, SizeOf(StartUpInfo), $00 );
    StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
    StartUpInfo.wShowWindow := SW_HIDE;
    if CreateProcess( nil, CMD, nil, nil, {运行批处理文件}
    False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo,
    ProcessInfo ) then
    begin
        WaitForSingleObject(Processinfo.hProcess,INFINITE);
        GetExitCodeProcess(ProcessInfo.hProcess,Result);

        CloseHandle( ProcessInfo.hThread );
        CloseHandle( ProcessInfo.hProcess );
    end;
end;

posted @ 2010-03-22 20:54  冷寒生  阅读(3391)  评论(0编辑  收藏  举报
IT知识库