作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我尝试使用 win32 api 在 c++ 中执行以下 bat 文件。以下是执行代码。
//#include "Shellapi.h"
#include "Windows.h"
int _tmain(int argc, _TCHAR* argv[])
{
ShellExecute(GetDesktopWindow(), "sa.bat","", NULL, NULL, SW_SHOWNORMAL);
DWORD LastError = GetLastError();
return 0;
}
但它不起作用。
以下是内容“sa.bat”
C:\windows\system32\wusa/uninstall/kb:2718695/quiet/forcerestart
但最后一个错误返回 1155。
最佳答案
试试这个:
//#include "Shellapi.h"
#include "Windows.h"
int _tmain(int argc, _TCHAR* argv[])
{
HINSTANCE hReturnCode=ShellExecute(NULL, _T("open"), _T("cmd.exe"), _T("/C sa.bat"), NULL, SW_SHOWNORMAL);
DWORD LastError = GetLastError();
return 0;
}
[编辑]这个工作建议来自 Chris:
//#include "Shellapi.h"
#include "Windows.h"
int _tmain(int argc, _TCHAR* argv[])
{
HINSTANCE hReturnCode=ShellExecute(NULL, _T("open"), _T("sa.bat"), NULL, NULL, SW_SHOWNORMAL);
DWORD LastError = GetLastError();
return 0;
}
关于c++ - ShellExecute() 不适用于 .bat 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16621911/
我是一名优秀的程序员,十分优秀!