Я пытаюсь написать базовый фоновый кейлоггер ... Сканирование клавиатурыКоды и состояния преобразуются с помощью функций pinvoke ToAsciiEx или ToUnicodeEx.Эти функции имеют аргумент для KeyboardLayout.У меня есть функция (см. Ниже) для получения текущей (активные окна) раскладки клавиатуры.Но эта функция всегда возвращает 0. Код ошибки - 6 (ERROR_INVALID_HANDLE).
Любые предложения?
Спасибо за ответы
static public IntPtr getActiveKeyBoardLayout()
{
int handle = 0;
handle = GetForegroundWindow();
IntPtr i = new IntPtr(handle);
HandleRef hr = new HandleRef(wrapper, i);
int pid;
GetWindowThreadProcessId(hr, out pid);
IntPtr layout = GetKeyboardLayout(pid);
int er = Marshal.GetLastWin32Error();
if (er > 0)
{
System.Console.Out.WriteLine("error " + er.ToString());
}
return layout;
}