如何调用另一应用程序的问题! ShellExecute(NULL, "open","d:/bysj/1.exe" ,NULL, NULL, SW_SHOWNORMAL); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 handle = CreateProcess........if(WaitforsingleObject()..........可以用其它) OnOK 以下函数可以执行一个命令行,并阻塞直到命令行的程序结束。BOOL ExecCommandLine_Block(char * szCommandLine){ STARTUPINFO si; ZeroMemory(&si,sizeof(si)); si.cb = sizeof(si); PROCESS_INFORMATION piProcess; BOOL bRet; bRet = CreateProcess(NULL,szCommandLine,NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&piProcess); if(bRet) CloseHandle(piProcess.hThread); WaitForSingleObject(piProcess.hProcess,INFINITE); CloseHandle(piProcess.hProcess); return bRet;} jeffreyren(我的心已经乱了感觉),是这样吗?好像不行!编译通过了!但1.exe出不来! void CMyDlg::OnOK() { ShellExecute(NULL, "open","d:/bysj/1.exe" ,NULL, NULL, SW_SHOWNORMAL);CDialog::OnOK(); } 用system或WinExec或CreateProcess函数。具体请看msdn ShellExecute(NULL, "open","d:/bysj/1.exe" ,NULL, NULL, SW_SHOWNORMAL)这样不对。应该是:ShellExecute(NULL, "open","d:\\bysj\\1.exe" ,NULL, NULL, SW_SHOWNORMAL 可我改了,1.exe还是出不来!void CMyDlg::OnOK() { ShellExecute(NULL, "open","d:\\bysj\\bjsj.exe" ,NULL, NULL, SW_SHOWNORMAL); CDialog::OnOK();} CFileStatus status; if(!CFile::GetStatus(kernel[index].strPath,status)) { MsgBox(IDS_ERROR_3); return ; } STARTUPINFO si={sizeof(si)}; //一个struct可以这样赋值吗? si.dwFlags =STARTF_USESHOWWINDOW; si.wShowWindow = (unsigned short)kernel[index].iShowFlag ; PROCESS_INFORMATION pi={0}; CreateProcess(kernel[index].strPath,NULL,NULL,NULL,FALSE, 0,NULL,NULL,&si,&pi); //从一个程序中调用了另一个程序 CloseHandle(pi.hProcess); CloseHandle(pi.hThread); 关于WSAAsyncSelect模型异常断线的处理! VS2008支持库 公益:需要<百度hi>邀请的请在回复中留下您的百度账号名称,俺会及时发出. 菜鸟提问 谁能用 socket api 写一个程序 与MSDN上的例子 CHATSRVR 通信。 在CHATSRVR上显示一个字符。 不用atl,用c++写的com注册问题。SOS 急! 有关对话框中控件的大小问题 三维地形的多分辩率显示问题 LRESULT CALLBACK WndProc (... ...)? vc9 如何在类视图里面为某个类添个消息处理函数 为什麽没有人回答我的问题?再次请教 请大家反思,这样下去如何能。。。。
if(WaitforsingleObject()..........可以用其它)
OnOK
BOOL ExecCommandLine_Block(char * szCommandLine)
{
STARTUPINFO si;
ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);
PROCESS_INFORMATION piProcess;
BOOL bRet;
bRet = CreateProcess(NULL,szCommandLine,NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&piProcess);
if(bRet)
CloseHandle(piProcess.hThread);
WaitForSingleObject(piProcess.hProcess,INFINITE);
CloseHandle(piProcess.hProcess);
return bRet;
}
void CMyDlg::OnOK()
{
ShellExecute(NULL, "open","d:/bysj/1.exe" ,NULL, NULL, SW_SHOWNORMAL);
CDialog::OnOK();
}
这样不对。
应该是:
ShellExecute(NULL, "open","d:\\bysj\\1.exe" ,NULL, NULL, SW_SHOWNORMAL
{
ShellExecute(NULL, "open","d:\\bysj\\bjsj.exe" ,NULL, NULL, SW_SHOWNORMAL);
CDialog::OnOK();
}
if(!CFile::GetStatus(kernel[index].strPath,status))
{
MsgBox(IDS_ERROR_3);
return ;
}
STARTUPINFO si={sizeof(si)}; //一个struct可以这样赋值吗?
si.dwFlags =STARTF_USESHOWWINDOW;
si.wShowWindow = (unsigned short)kernel[index].iShowFlag ;
PROCESS_INFORMATION pi={0}; CreateProcess(kernel[index].strPath,NULL,NULL,NULL,FALSE,
0,NULL,NULL,&si,&pi); //从一个程序中调用了另一个程序
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);