다른 앱에서 컨텍스트 메뉴 항목을 프로그래밍 방식으로 선택하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/827648

문제

대상 앱은 Delphi (.NET가 아닌 Win32)로 작성되었으며 폐쇄 소스입니다.

호출하고 싶은 동작을 사본이라고하지만 명백한 키보드 바로 가기는 없습니다. (ctrl+삽입은 잘못된 일을하고 ctrl+c는 아무것도하지 않습니다)

내 목표를 찾을 수 있습니다 HWND 상황에 맞는 메뉴를 열도록 설득합니다 (응답합니다. WM_RBUTTONDOWN/UP ~ 아니다 WM_CONTEXTMENU). 메뉴에서 HWND 나는 심지어 메뉴 핸들을 통해 얻을 수 있습니다 MN_GETHMENU 내가 원하는 메뉴 항목을 찾으십시오. 나는 항목을 "선택"하는 방법에 대한 세부 사항을 모른다. 메뉴가 "모드가없는"것인데 도움이되지 않습니다. 그것의 HWND 소유하지 않으므로 어떤 많은 숨겨져 있는지 모르겠습니다. TPUtilWindow Windows는 실제 소유자입니다. 그렇지 않으면 아마도 보낼 수 있습니다. WM_COMMAND 그리고 메뉴를 팝업조차하지 않습니다.

나는 그것이 모든 종류의 해킹을 용이하게한다고 확신하지만, 대상 프로세스에 코드를 주입하지 않는 것이 좋습니다.

모든 언어로 받아 들여지는 답변.

도움이 되었습니까?

해결책

분명히 당신은 그것을 보낼 수 있습니다 WM_RBUTTONDOWN/UP 메시지와 응답. 그렇다면 보낼 수 있습니다 WM_KEYDOWN/UP 메시지? 메뉴의 구조를 알고 변경되지 않는 한, 앱에 누군가가 아래쪽 화살표 X를 횟수로 눌렀다가 Enter를 누르라고 말하십시오. 그것은 나에게 가장 간단한 해결책처럼 보인다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top