有没有一种方法来validation从试图打开它(Windows)的C ++程序打开的程序?

我有一个C ++程序,涉及打开一个程序(让我们说calculator.exe)。 我需要能够testing,以确保这个程序是开放的。 这是我的意思的一个例子。

#include <iostream.h> int main() { system("start calculator"); if (xxxxx) cout << "Calculator is running.\n"; cin.get(); return 0; } 

我需要为xxxxxtesting计算器是否打开?

Solutions Collecting From Web of "有没有一种方法来validation从试图打开它(Windows)的C ++程序打开的程序?"

您可以通过进程名称找到它,也可以通过窗口标题找到它。

 #include <iostream> #include <windows.h> #include <TlHelp32.h> DWORD find_by_process_name(const wchar_t* process_name) { DWORD pid = 0; HANDLE hndl = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS | TH32CS_SNAPMODULE, 0); if (hndl) { PROCESSENTRY32 process = { sizeof(PROCESSENTRY32) }; Process32First(hndl, &process); do { if (_wcsicmp(process.szExeFile, process_name) == 0) { pid = process.th32ProcessID; break; } } while (Process32Next(hndl, &process)); CloseHandle(hndl); } return pid; } int main() { ShellExecuteA(0, "open", "calc.exe", 0, 0, SW_SHOWNORMAL); if (find_by_process_name(L"calc.exe")) std::cout << "calculator is running\n"; return 0; }