ウィンドウの wnd proc をフックしようとしたところ、突然ワイルド変数が表示されました...
わかりました、私の問題をもう少し説明しましょう。C# から C++ WinApi にアクセスするために IP/いくつかの関数を呼び出しました。あるウィンドウから別のウィンドウにいくつかのキーストロークをコピーしたかった (別名、WoW やその他の MMO のデュアル ボクシング) P/Invoking は問題なく動作し、満足していますが、変数dwExtraInfo
が何のためにあるのか混乱しています。このフィールドのドキュメントは、名前自体がすでに言っていることを繰り返しているだけです...
定義は次のとおりです。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms644967(v=vs.85).aspx
または怠惰な人のために(私もその一人です:P):
[StructLayout(LayoutKind.Sequential)]
public class KBDLLHOOKSTRUCT
{
public uint vkCode;
public uint scanCode;
public KBDLLHOOKSTRUCTFlags flags;
public uint time;
public UIntPtr dwExtraInfo;
}
このデータをゲームに送信する場合 (WPARAM をWM_KEYDOWN
およびに設定した SendMessage WM_KEYUP
)、vkCode を WPARAM に設定し、この構造から LPARAM を構築します。dwExtraInfo は 1 つのメッセージのキーストロークの量だけですか?
たとえば、 をw-key
10 秒ほど押したままにすると、次のメッセージが送信されるまでに 1 回の間隔でキーストロークの量が保存されますか?
この変数は本当に私を混乱させます...