グローバルにAlt + Shift + Sをインターセプトするアプリケーションを作成する必要があります。C#でグローバルホットキーを実装する方法は?
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がメモリに永久にロードされていないようです。私はファイルシステムからdllファイルを削除することができますが表示されます。
私が間違っていることをアドバイスしてください。
別の方法を使用する必要がありますか?
ありがとうございます。
それはだ@Paedow 'SetWindowsHookEx' – SwDevMan81
のためのようなあなたのPInvokeコードを見て何これはhttp://www.codeproject.com/KB/cs/globalhook.aspx – fardjad