Невозможно отобразить определенные параметры контекстного меню, если один из процессов не запущен ?. Я проверяю, запущен ли процесс или нет, с именем процесса.Как проверить, работает ли процесс или нет с помощью C++
Но проблема в том, что имя процесса отображается по-разному на разных платформах Windows.
т.е. окон 64 бит имя процесса на панели задач Windows является "applicationname.exe"
некоторые окна хр машина показывает то же имя процесса, как "~ 2.exe нанесени"
Пожалуйста, дайте мне знать последовательный способ проверить, работает ли этот процесс или нет?
Моя среда разработки C++ и Visual Studio 2010
DWORD getProcessID(const std::wstring& processName)
{
PROCESSENTRY32 info;
info.dwSize = sizeof(info);
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (snapshot == INVALID_HANDLE_VALUE)
return 0;
Process32First(snapshot, &info);
if (!processName.compare(info.szExeFile))
{
CloseHandle(snapshot);
return info.th32ProcessID;
}
while (Process32Next(snapshot, &info))
{
if (!processName.compare(info.szExeFile))
{
CloseHandle(snapshot);
return info.th32ProcessID;
}
}
CloseHandle(snapshot);
return 0;
}
Это конкретные окна, да? Вы должны добавить тег. – BoBTFish
спасибо BobTFish, я запомню это в следующий раз. – JChan
Вы пытались использовать 'Module32First'? См. Описание под 'szExeFile' [здесь] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms684839 (v = vs.85) .aspx). – hmjd