使用创建过程和 ms paint 打开图像
Open image with create process and ms paint
您好,我的任务是使用 mspaint(微软画图)打开图像,然后使用 create process (windows.h)
我该怎么做?
我试试 :
STARTUPINFO info = { sizeof(info) };
PROCESS_INFORMATION processInfo;
std::string p = pic.getPath();
if (CreateProcessA(LPCSTR(p),"C:\Windows\system32\mspaint.exe", NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
{
WaitForSingleObject(processInfo.hProcess, INFINITE);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
}
还有一件事,我需要用控制 c 关闭它并确保 我的 exe 没有关闭
我也该怎么做?
谢谢
你给 CreateProcessA()
的参数都是错误的。试试这个:
STARTUPINFO info = { sizeof(info) };
PROCESS_INFORMATION processInfo;
std::string p = pic.getPath();
std::string cmd = "C:\Windows\system32\mspaint.exe \"" + p + "\"";
if (CreateProcessA(NULL, const_cast<LPSTR>(cmd.c_str()), NULL, NULL, FALSE, 0, NULL, NULL, &info, &processInfo))
{
WaitForSingleObject(processInfo.hProcess, INFINITE);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
}
至于关闭 MSPaint 进程,您不用 CTRL-C。找到属于 MSPaint window 的 HWND
,然后向其发送 WM_CLOSE
或 WM_QUIT
消息。 CreateProcess()
告诉您生成进程的主线程 ID,使用 EnumThreadWindows()
查找属于该线程的 HWND
。然后使用SendMessage()
向它发送消息。
您好,我的任务是使用 mspaint(微软画图)打开图像,然后使用 create process (windows.h)
我该怎么做? 我试试 :
STARTUPINFO info = { sizeof(info) };
PROCESS_INFORMATION processInfo;
std::string p = pic.getPath();
if (CreateProcessA(LPCSTR(p),"C:\Windows\system32\mspaint.exe", NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
{
WaitForSingleObject(processInfo.hProcess, INFINITE);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
}
还有一件事,我需要用控制 c 关闭它并确保 我的 exe 没有关闭 我也该怎么做?
谢谢
你给 CreateProcessA()
的参数都是错误的。试试这个:
STARTUPINFO info = { sizeof(info) };
PROCESS_INFORMATION processInfo;
std::string p = pic.getPath();
std::string cmd = "C:\Windows\system32\mspaint.exe \"" + p + "\"";
if (CreateProcessA(NULL, const_cast<LPSTR>(cmd.c_str()), NULL, NULL, FALSE, 0, NULL, NULL, &info, &processInfo))
{
WaitForSingleObject(processInfo.hProcess, INFINITE);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
}
至于关闭 MSPaint 进程,您不用 CTRL-C。找到属于 MSPaint window 的 HWND
,然后向其发送 WM_CLOSE
或 WM_QUIT
消息。 CreateProcess()
告诉您生成进程的主线程 ID,使用 EnumThreadWindows()
查找属于该线程的 HWND
。然后使用SendMessage()
向它发送消息。