Хочу в этом switch, отловить title, process, process id. У меня есть 2 функции
LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
{
//while(is_working_)
if (nCode < 0)
return CallNextHookEx(NULL, nCode, wParam, lParam);
switch (nCode)
{
case HCBT_ACTIVATE:
break;
case HCBT_CREATEWND:
break;
case HCBT_DESTROYWND:
break;
case HCBT_MINMAX:
break;
case HCBT_MOVESIZE:
break;
case HCBT_SETFOCUS:
break;
case HCBT_SYSCOMMAND:
break;
default:
break;
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
Первая, ловит тайтл окна.
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
hwnd = GetForegroundWindow(); //get handle of currently active window
if (IsWindowVisible(hwnd)) // check whether window is visible
{
char wnd_title[256];
GetWindowText(hwnd, wnd_title, sizeof(wnd_title));
std::cout << wnd_title << std::endl;
}
return true; // function must return true if you want to continue enumeration
}
Вторая, процес айди и процес нейм:
void PrintProcessNameAndID(DWORD processID)
{
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));
}
}
// Print the process name and identifier.
_tprintf(TEXT("%s (PID: %u)\n"), szProcessName, processID);
// Release the handle to the process.
CloseHandle(hProcess);
}
Возможно ли это сделать одной функцией?
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости