我需要从上下文菜单中启动一个单独的进程/应用程序; 我正在使用该功能launch_program.我不关心有关从创建的进程退出代码一旦终止,我只是希望能够将其启动.我的问题是:如果变量startup_info和proc_info正在通过引用传递CreateProcess我可以使用CloseHandle它们,如果我只是要从函数返回到我的主线程?
void launch_program()
{
STARTUPINFO startup_info;
PROCESS_INFORMATION proc_info;
LPCSTR location = "C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe";
ZeroMemory( &startup_info,sizeof(startup_info));
startup_info.cb = sizeof(startup_info);
ZeroMemory( &proc_info,sizeof(proc_info));
CreateProcess( location,
NULL,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&startup_info,
&proc_info);
}
Run Code Online (Sandbox Code Playgroud)
我使用https://msdn.microsoft.com/en-us/library/windows/desktop/ms682512(v=vs.85).aspx作为参考.
PS我只是使用Internet Explorer作为填充
[编辑]完整性:
CloseHandle(proc_info.hProcess);
CloseHandle(proc_info.hThread);
Run Code Online (Sandbox Code Playgroud) 这个问题与在对话框窗口 C++ Win32 API 上使用图标不同,我试图将自定义图标包含到对话框的客户区中。当我运行代码时,我得到一个默认的 Windows 图标,而不是我想要的自定义图标。如果我将 的值更改为IDI_ICON180 到 120 之间的任意数字,则会得到不同的 Windows 图标;我尝试了更高的数字,但随后什么也不会出现。我在cplusplus.com 上看到有人遇到了同样的错误,我做了同样的事情,但没有任何区别。
源文件
#pragma comment(lib,"ole32.lib")
#pragma comment(linker,"\"/manifestdependency:type='win32' \
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
_TCHAR szClassName[] = "StackOverflow";
HWND hwnd;
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK DialogProc(HWND handle, UINT message, WPARAM wparam, LPARAM lparam);
int _stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR CmdLine, int nShowCmd)
{
MSG messages;
WNDCLASSEX wincl;
HWND …Run Code Online (Sandbox Code Playgroud)