C++如何调用自定义文件啊?

来源:百度知道 编辑:UC知道 时间:2024/06/05 04:38:20
void CNewSoftDlg::OnOK()
{
system("C:\\1.vbs");
PostQuitMessage(0);
}

我想单击按钮后调用C:\1.vbs,然后关闭自身,但是这样会弹出一个cmd黑框,有没有其它办法呀?

可以用CreateProcess来执行一个程序。如:

#include <iostream>
#include<windows.h>
using namespace std;

int main()
{
TCHAR szCmdLine[]={TEXT("C:\\Program Files\\Internet Explorer\\iexplore.exe")};
STARTUPINFO si;
memset(&si, 0, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOW;
PROCESS_INFORMATION pinfo;

if (!CreateProcess(NULL, szCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pinfo))
{
cout<<"新进程创建失败!"<<endl;
return -1;
}
else
{
cout<<"新进程创建成功!"<<endl;
}
return 0;
}

system是在本线程内运行的, 所以会阻塞住这个窗口,直到命令运行完了再继续

如果你希望运行的 1.vbs和你的窗口互相独立,不干扰的话可以用 exec系列函数,或者用 CreateProcess