winexec就是这样的,在win32下,一般都是用WaitForSingleObject来等待进程结束,但是在c#中,我不知道怎么做。也许,直接调用这个方法,也可以吧?
解决方案 »
- 请数组初始化的问题
- oracle 语句问题 SQL语句如下
- 不是很明白WinForm的Application.Run,请专家帮忙
- winform中的焦点问题(问题再续)太让我失望了
- 一个LIST<INT>型,里面有N个数,求最大数为多少,并把它赋给一个LABLE.TEXT中
- 求助!!
- 如何在datalist取到选中的值(急)
- 制造业,进销存,先进先出的问题!
- c#调用Matlab出错 --找不到指定模块,,求指导??
- 水晶报表的怪问题!!(以前调试正常的报表,怎么会出现“未将对象引用设置到对象实例”)
- 怎么把这些编码转换为中文字符
- 急:请教专家,FindWindow好像不好用?(关于自定义消息)
{
logtext = "配置Internet Information Server(IIS)";
WriteLog();
labelSetupIIS->Font->Style = labelSetupIIS->Font->Style<<fsBold; STARTUPINFO sinfo;
PROCESS_INFORMATION pinfo;
AnsiString parm = " " + editVdirName->Text + " " + editFolderName->Text; sinfo.cb = sizeof(STARTUPINFO);
sinfo.lpReserved = NULL;
sinfo.lpDesktop = NULL;
sinfo.lpTitle = "";
sinfo.dwFlags = STARTF_USESHOWWINDOW;
sinfo.wShowWindow = SW_HIDE;
sinfo.cbReserved2 = 0;
sinfo.lpReserved2 = NULL; //必须要有路径!否则失败!
logtext = "创建进程,调用"+GetCurrentDir()+AnsiString("\\adsi.exe 参数:")+parm;
WriteLog();
bool iis = ::CreateProcess(AnsiString(GetCurrentDir()+"\\adsi.exe").c_str(),parm.c_str(),NULL,NULL,true,NORMAL_PRIORITY_CLASS|CREATE_DEFAULT_ERROR_MODE,NULL,NULL,&sinfo,&pinfo);
if(iis){
logtext = "IIS配置完成";
}
else{
logtext = "IIS配置失败。错误代码:"+IntToStr(GetLastError());
}
WriteLog(); ::WaitForSingleObject(pinfo.hProcess,INFINITE);
::CloseHandle(pinfo.hProcess); labelSetupIIS->Font->Style = labelSetupIIS->Font->Style>>fsBold;
imageSetupIIS->Visible = true;
imageSetupIIS->Repaint();
}