gpt4 book ai didi

c++ - 如何使用 Qt (C++) 检查程序是否按其名称运行

转载 作者:可可西里 更新时间:2023-11-01 16:26:18 29 4
gpt4 key购买 nike

如何使用 Qt (C++) 根据程序名称检查程序是否正在运行。

QProcess::pid 会完成这项工作吗?我不知道如何使用它。请提出建议。

最佳答案

据我所知,QProcess 不允许您这样做(除非您自己生成了该进程),事实上 Qt 中的任何内容都不允许。但是 Win32 API 提供了一种通过 EnumProcesses 函数实现您想要的方法,并且 Microsoft 网站上提供了如何使用它的完整示例:

http://msdn.microsoft.com/en-us/library/ms682623.aspx

要获取,您需要使用以下函数替换 PrintProcessNameAndID:

bool matchProcessName( DWORD processID, std::string processName)
{
TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");

// Get a handle to the process.

HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );

// Get the process name.

if (NULL != hProcess )
{
HMODULE hMod;
DWORD cbNeeded;

if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod),
&cbNeeded) )
{
GetModuleBaseName( hProcess, hMod, szProcessName,
sizeof(szProcessName)/sizeof(TCHAR) );
}
}

// Compare process name with your string
bool matchFound = !_tcscmp(szProcessName, processName.c_str() );

// Release the handle to the process.
CloseHandle( hProcess );

return matchFound;
}

关于c++ - 如何使用 Qt (C++) 检查程序是否按其名称运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13633797/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com