我需要运行"创建新任务"我的应用程序中的程序,与从任务管理器运行的程序相同。
答案 0 :(得分:1)
有一个CreateProcess ()
API。
我建议您查看文档here。它允许您按名称加载应用程序,其余的由Windows负责。
答案 1 :(得分:0)
我假设您正在引用“运行”对话框?此代码将打开Windows运行对话框。 警告:它通过序号访问Windows API,而不是通过名称访问。这通常是做未记录的事情的标志,在未来的Windows版本中可能会或可能不会。
// MS Run dialog
typedef void (__stdcall* lpfnMSRun)(HWND, HICON, LPCSTR, LPCSTR, LPCSTR, int);
static lpfnMSRun MSRun = NULL;
bool DisplayRunDialog()
{
if ((MSRun == NULL) && (emergeLibGlobals::GetShell32DLL()))
{
MSRun = (lpfnMSRun)GetProcAddress(emergeLibGlobals::GetShell32DLL(), (LPCSTR) 61);
}
if (MSRun)
{
MSRun(NULL, NULL, NULL, NULL, NULL, 0);
return true;
}
return false;
}
关于此问题的几个注意事项 - emergeLibGlobals::GetShell32DLL()
是一个内部方法,它在shell32.dll上调用LoadLibrary
并返回其HMODULE。您可以直接致电LoadLibrary
。此外,如果您的编译器支持C ++ 11,您可以全面替换NULL
nullptr
。
This CodeProject article声称有记录的方式来做同样的事情,但我没有尝试过,所以我无法保证它能够正常工作。