kinectからキーストロークを制御しようとしています。たとえば、右手が右に移動すると、キーボードの右矢印を押したままになります。kinectのコードを書き終えましたが、カスタムキーボードデバイスの作成方法がわかりません。SendKeyを使おうとしましたが、hold keyコマンドがないため、機能しません。私もループ、スレッドを使用していますが、それも機能しません。kinectを使用して、WPFアプリケーションを介してGoogleEarthを制御しようとしています。kinectからの移動はすべて、キーボードの長押しに変換されるため、GoogleEarthアプリケーションを制御できます。なにか提案を?
よろしく、
C.Porawat
2 に答える
1
答えがわかりました。System.Windows.InteropおよびSystem.Runtime.InteropServicesを使用する。次に、以下を使用します。
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, IntPtr dwExtraInfo);
次に、使用したいときにキーボード イベントを呼び出します。
keybd_event(0x27, 0, KEYEVENTF_KEYDOWN, new System.IntPtr()); //press right arrow on the keyboard
于 2011-03-29T03:48:05.270 に答える
1
保留キーの状態またはイベントはありません。キーボードのキーを押したままにすると、複数のキー イベントが生成されます。この win32 の例では、左キーを永遠に押し続けることをシミュレートしています。
while(true)
{
INPUT input =
{
INPUT_KEYBOARD
};
KEYBDINPUT tmp =
{
VK_LEFT,
0,
0,
0,
NULL
};
input.ki = tmp;
SendInput(1, &input, sizeof(INPUT));
::Sleep(100);
}
于 2011-03-24T20:37:04.993 に答える