私はプロジェクトでGma.UserActivityMonitorライブラリを使用しようとしていますが、私は自分自身で克服できないエラーに直面しました。 HookManager.Callbacks.cs
ファイルでGma.UserActivityMonitor&SetWindowsHookExエラー126
静的メソッドがありますが、次のコード(多かれ少なかれ)とEnsureSubscribedToGlobalMouseEvents
と呼ば:
var asm = Assembly.GetExecutingAssembly().GetModules()[0];
var mar = Marshal.GetHINSTANCE(asm);
s_MouseHookHandle = SetWindowsHookEx(
WH_MOUSE_LL,
s_MouseDelegate,
mar,
0);
//If SetWindowsHookEx fails.
if (s_MouseHookHandle == 0)
{
//Returns the error code returned by the last unmanaged function called using platform invoke that has the DllImportAttribute.SetLastError flag set.
int errorCode = Marshal.GetLastWin32Error();
//do cleanup
//Initializes and throws a new instance of the Win32Exception class with the specified error.
throw new Win32Exception(errorCode);
}
SetWindowsHookEx
常に0
を返し、上記のコードは、メッセージThe specified module could not be found
とコールと例外をスローし続けますMarshal.GetLastWin32Error
にコード126
を返します。私は正常にGma.UserActivityMonitorのオリジナルのプロジェクトで提供されたデモを実行することができますが、私のプロジェクトはここで説明するのが少し複雑すぎるので、私はその違いを私と詳しく説明することはできません。私は、誰かが盲目的に問題を推測できることを望んでいるだけです。 がプロジェクトのデバッグ時にのみチェックされると、他の人が問題に近い問題が発生していると言われています(SetWindowsHookEx
エラーが返されます)。だから、私はそのボックスをチェックしなかったが、私は同じ問題を抱えている。デバッグモードだけでなく、エクスプローラ(Visual Studioは関係ない)でリリースファイルをダブルクリックするときも同じだ。
詳細情報を表示するには、asm
の変数が{Gma.UserActivityMonitor.dll}
になり、例外がスローされた私のプロジェクトで同じことを指し示すデモプロジェクト(正常に動作します)で!
これは、関連するプロセスのビット数に関連している可能性があります。 – Yahia
詳細を説明したり、適切なリソースを教えてください。 – Mehran
フックは、通常、対象プロセスの一部となるコードを必要とします。これはさまざまな方法で達成できますが、基本的にプロセス、フックされたプロセスおよびOSに関するビット数の違いは、問題および/またはerratciの動作につながる可能性があります。 – Yahia