여기에는 터치 패드 가상 키보드 버튼이 있습니다. 화면에서 'TOUCH'를 누르면 'ab'가 표시됩니다. TOUCH 버튼을 누른 직후에 BlockInput을 사용하여 2 초 동안 마우스와 키보드 입력을 방지하려고합니다. 그러나 그것은 작동하지 않습니다, 나는 BlockInput을위한 타이머를 설정할 필요가 있다고 생각합니다. any1 어떻게 그렇게하는지 압니다?BlockInput을 사용하여 키보드 및 마우스 입력 차단
public partial class TRY
{
[System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint = "BlockInput")]
[return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)]
public static extern bool BlockInput([System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)] bool fBlockIt);
}
public void TOUCH(string key)
{
if (key == "Press")
{
PressAndRelease("a");
PressAndRelease("b");
ReleaseKeys();
TRY.BlockInput(true);
Thread.Sleep(2000);
TRY.BlockInput(false);
}
}
오류를 확인하지 않고 BlockInput() 반환 값을 무시합니다. 확실한 이유가 무엇인지 알 수 없습니다. false를 반환하면 Win32Exception을 던집니다. –
@HansPassant : Thx 정보입니다. 내 코드는 컴파일하려고 할 때 오류가 없습니다. 그러나'Thread.Sleep (2000)'시대에는 사용자의 입력을 여전히받을 수 있습니다. 그것을 고칠 수있는 방법을 보여줄 수 있습니까? – hakunabean
이 (UI?) 스레드에서 절전 모드를 사용하지 말고 배경 작업자를 사용하십시오. –