同步执行其他程序(dos命令)

1. 调用标准system函数,如:system("net stop bservices");

2. 使用WaitForSingleObject函数:

void exec(AnsiString cmd)
{
    STARTUPINFO  si;
    ZeroMemory(&si,  sizeof(si));
    si.cb  =  sizeof(STARTUPINFO);

PROCESS_INFORMATION  pi;
BOOL  res  =  CreateProcess(NULL,
cmd.c_str(),  //  执行你的  dos  命令
NULL,
NULL,
NULL,
NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW,
NULL,
NULL,
&si,
&pi);

if  (TRUE  ==  res)
{
    WaitForSingleObject(pi.hProcess,INFINITE);
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
}
}
 

注:ShellExecute和WinExec是异步执行。

posted @ 2011-02-01 09:27  81  阅读(365)  评论(0编辑  收藏  举报