C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 144 を表示中)
■84501 / )  Re[1]: SetWindowsHookExが応答しなくなる
□投稿者/ 魔界の仮面弁士 (1341回)-(2017/07/08(Sat) 13:23:36)
No84497 (ねこまっしぐら さん) に返信
> XP32bitの時はちゃんと動いてたのに7-64bitだとフックがだんまりになります
このあたりとか。
https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/56093d14-c1bc-4d0a-a915-57fef0695191/windows-7-setwindowshookex-callback-proc-stops-getting-called-after-exceeding-max-time-allowed?forum=windowsgeneraldevelopmentissues


> Public Overloads Shared Function SetWindowsHookEx(ByVal idHook As Integer, ByVal HookProc As CallBack, ByVal hInstance As IntPtr, ByVal wParam As Integer) As Integer
SetWindowsHookEx API の戻り値って、フックプロシージャのハンドル(HHOOK)ですよね。
Int32 ではなく、IntPtr で受け取るべきではないでしょうか。

> hMHook = SetWindowsHookEx(WH_MOUSE_LL, MHookProc, GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), 0)
インスタンスハンドルを受け取るなら、Marshal.GetHINSTANCE メソッドが使えませんでしたっけ。

あと、開発環境から利用する場合は、Visual Studio ホスティング プロセスが
無効になっているかどうかも確認を。

それ以外だと、記載されていない CallBack デリゲートが適切かどうか、とか。
返信 編集キー/


管理者用

- Child Tree -