kinect를 사용하여 제스처를 분류하고 PC에서 실행되는 에뮬레이터에서 마리오 게임을하기 위해 이러한 제스처를 사용하려는 일부 소프트웨어를 만들었습니다.외부 응용 프로그램에 키 스트로크 보내기
재생하려면 키 입력을 에뮬레이터에 보냅니다.
Process process = Process.GetProcessesByName("nnnesterJ")[0];
SetForegroundWindow(process.MainWindowHandle);
을 그리고 내가 키 입력을 보내려고 : 내 코드에서 내가 먼저 (이 작업) 창을 불러 내가이 시도 않았다
case Movement.left: SendKeys.SendWait("{LEFT}"); break;
case Movement.right: SendKeys.SendWait("{RIGHT}"); break;
case Movement.upperleft: SendKeys.SendWait("{LEFT}{UP}"); current_move = Movement.stop; break;
case Movement.upperright: SendKeys.SendWait("{RIGHT}{UP}"); current_move = Movement.stop; break;
case Movement.jump: SendKeys.SendWait("{UP}"); current_move = Movement.stop; break;
case Movement.crouch: SendKeys.SendWait("{DOWN}"); break;
그러나, 이것은 :(작동하지 않는 엑셀과는 작동합니까 (그래 나는 키가 실제로 올바른지 확인 해요)
내가이 일을하려고했습니다.[DllImport("user32.dll", SetLastError = true)]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
public static void PressKey(Keys key, bool up)
{
const int KEYEVENTF_EXTENDEDKEY = 0x1;
const int KEYEVENTF_KEYUP = 0x2;
if (up)
{
keybd_event((byte)key, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
}
else
{
keybd_event((byte)key, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
}
}
을
하지만 불행히도 이것도 작동하지 않습니다. 아무도 옵션을 가지고 있습니까?
종류와 관련, 헥터
가 확인할 수 있습니까? 추가 정보를 줄 수도 있습니다. –
화면 키보드 (예 : google)가 작동 중이고 다른 응용 프로그램 (예 : Excel)에서도 작동하는 키 명령을 전송합니다. –