ччбчлчлчъ ччччшчьпьппзвжв
Потрачен
- 557
- 271
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Кто сможет помочь, почему не может установится хук, выводит мне: Ошибка установки хука: 1428, запускаю от имени администратора, антивируса нету, в чем может быть проблема? мб настройка проекта
другие хуки работают, особенно те которые не требуют прав администратора, к примеру этот код работает
😒😢
C++:
#include <Windows.h>
#include <iostream>
#include <string>
using namespace std;
LRESULT CALLBACK HookProcedure(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HSHELL_WINDOWCREATED)
{
HWND hwnd = (HWND)lParam;
char title[1024];
GetWindowTextA(hwnd, title, sizeof(title));
cout << "Создано новое окно: " << title << endl;
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
int main()
{
// Устанавливаем глобальный хук на создание окон
HHOOK hook = SetWindowsHookEx(WH_SHELL, HookProcedure, NULL, 0);
if (hook == NULL)
{
cout << "Ошибка установки хука: " << GetLastError() << endl;
return 1;
}
// Ожидаем нажатия клавиши
cout << "Хук установлен. Нажмите любую клавишу для выхода." << endl;
cin.get();
// Отключаем хук
UnhookWindowsHookEx(hook);
return 0;
}
другие хуки работают, особенно те которые не требуют прав администратора, к примеру этот код работает
C++:
#include <Windows.h>
#include <iostream>
#include <string>
using namespace std;
LRESULT CALLBACK HookProcedure(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION)
{
switch (wParam)
{
case WM_LBUTTONDOWN:
cout << "Нажата левая кнопка мыши" << endl;
break;
case WM_LBUTTONUP:
cout << "Отпущена левая кнопка мыши" << endl;
break;
case WM_RBUTTONDOWN:
cout << "Нажата правая кнопка мыши" << endl;
break;
case WM_RBUTTONUP:
cout << "Отпущена правая кнопка мыши" << endl;
break;
case WM_MBUTTONDOWN:
cout << "Нажата средняя кнопка мыши" << endl;
break;
case WM_MBUTTONUP:
cout << "Отпущена средняя кнопка мыши" << endl;
break;
default:
break;
}
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
int main()
{
// Запускаем процесс
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
if (!CreateProcess(L"C:\\Windows\\notepad.exe", NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
cout << "Ошибка запуска процесса: " << GetLastError() << endl;
return 1;
}
// Устанавливаем глобальный хук на процесс
HHOOK hook = SetWindowsHookEx(WH_MOUSE_LL, HookProcedure, NULL, 0);
if (hook == NULL)
{
cout << "Ошибка установки хука: " << GetLastError() << endl;
return 1;
}
// Ожидаем завершения процесса
WaitForSingleObject(pi.hProcess, INFINITE);
// Отключаем хук
UnhookWindowsHookEx(hook);
// Закрываем дескрипторы процесса и потока
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return 0;
}