제목이 거의 질문을 설명합니다. Senkeys.send
메서드를 통해 alt + space + n 조합을 어떻게 처리 할 수 있습니까? 지금까지 나는 SendKeys.Send("% N");
을 시도했지만 작동하지 않습니다.Sendkeys.send send alt + space + n
답변
스페이스 바는 전통적인 수정 자 키가 아니므로 keyUp 및 keyDown 이벤트를 별도로 보내야합니다.
내가 이런 종류의 AutoIt이 라이브러리를 사용하기 때문에, AutoIt을 사용하여 명령 같은 것을 할 것입니다, C#을 SendKeys 매크로 완전히 익숙하지 않다 :
private void pressAltSpaceN()
{
AutoItX3Declarations.AU3_Send("{alt down}", 0);
AutoItX3Declarations.AU3_Send("{space down}", 0);
AutoItX3Declarations.AU3_Send("{n down}", 0);
AutoItX3Declarations.AU3_Send("{n up}", 0);
AutoItX3Declarations.AU3_Send("{space up}", 0);
AutoItX3Declarations.AU3_Send("{alt up}", 0);
}
바라건대 다른 사람이 보내는 방법을 알 수 있습니다 keyUp 및 keyDown 이벤트를 SendKeys를 사용하여 만들 수 있습니다. 그렇지 않으면이 질문에 대한 대답을 사용하여 AutoIt을 C#에 통합하는 방법을 배울 수 있습니다 : link.
사용중인 문자열이 작동해야합니다. 아마도 기본 저널링 훅은 최소화하려는 응용 프로그램에서 작동하지 않을 수 있습니다. app.config 및 SendInput을 사용하여 다른 방법을 시도해 볼 수 있습니다 (here 참조).
다음, GetActiveWindow를 사용하여 포커스 창으로 핸들을 얻을 ShowWindowAsync를 호출
내 문자열은 N SendKeys.Send ("%") 없이만 작동합니다. 최소화, 복원 ... 옵션이있는 메뉴가 나타납니다. 따라서 응용 프로그램 오류가 아닙니다. – user2412672
@ user2412672 "% n"(또는 N)이 정상적으로 작동합니다. 실제로 Alt + Space를 입력하면 포커스가있는 응용 프로그램에 밑줄이 그어진 'n'이있는 최소화 옵션이 포함됩니까? – hyru
예 – user2412672
2의 ShowWindowCommand 값을 전달하는 것입니다 문제를 해결하기 위해 더 좋은 방법은 당신은 키 트리거를 추가하려고합니까? 예 : 버튼을 누르면 무언가가 발생합니까? 또는 OS에 키 조합을 보내려고하십니까? – Saren