Мне нужно написать приложение, которое глобально перехватывает Alt + Shift + S.
Я создал библиотеку DLL, которая устанавливает глобальные хуки:
namespace Hotkeydll
{
public class MyHotKey
{
public static void setHooks()
{
KeyboardHookProcedure = new HookProc(KeyboardHookProc);
hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardHookProcedure, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]), 0);
}
private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam)
{
//write something into file
}
}
}
Затем я создалПрограмма, которая загружает эту DLL и устанавливает хук:
using Hotkeydll;
namespace IWFHotkeyStarter
{
class Program
{
static void Main(string[] args)
{
MyHotKey.setHooks();
}
}
}
Теперь проблема в том, что горячая клавиша не работает.
Похоже, что DLL не загружена в память постоянно.Я вижу, что могу удалить файл dll из файловой системы.
Поэтому, пожалуйста, сообщите, что я делаю неправильно?
Должен ли я использовать другой подход?
Спасибо.