Окно переднего плана крюка - PullRequest
0 голосов
/ 03 декабря 2011

Как я могу перехватить окно переднего плана?

В настоящее время я пытаюсь с

using (Process processTmp = Process.GetCurrentProcess())
{
  using (ProcessModule module = processTmp.MainModule)
  {
    IntPtr hModule = Win32.GetModuleHandle(module.ModuleName);
    uint threadid = Win32.GetWindowThreadProcessId(Win32.GetForegroundWindow(), IntPtr.Zero);

    //WH_CALLWNDPROC = 4
    m_HookId = Win32.SetWindowsHookEx(4, m_HookProcedure, hModule, threadid); 
    if (m_HookId == IntPtr.Zero)
    {
      int tmp =
        Marshal.GetLastWin32Error();
    }
  }
}

Но m_HookID всегда IntPtr.Zero с ошибкой 1428 - Невозможно установить нелокальный хук без модуляручка (ERROR_HOOK_NEEDS_HMOD).Похоже, что-то не так с hModule.

Есть предложения?Tnx.

1 Ответ

2 голосов
/ 03 декабря 2011

Нельзя внедрить управляемую сборку в процесс.Требуется нативная DLL, написанная на языке C, C ++ или Delphi. Этот проект может быть полезен в качестве источника необходимой вам DLL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...