2013-10-02 2 views
1

SendKeys.SendWait("keys")을 사용하여 최소화 된 또는 보이지 않는 응용 프로그램에 일부 키 입력을 보내고 싶습니다.Win32 최소 응용 프로그램에 SendKeys.SendWait ("keys") 보내기

실험적으로 볼 때, 전송하려는 애플리케이션에 포커스가 있고 표시 될 때만 작동하는 것처럼 보입니다. 나는 눈에 보이지 않을 때 응용 프로그램에 초점을 두어 보았습니다. 아무 소용이 없었습니다. 내가 뭔가를 놓쳤 으면 좋겠다. 이렇게 할 방법이 있습니까?

배경 :.

나는 "m 타사가 조용하고 가능한 자동화로 자동 설치를 지원하지 않습니다 패키지를 설치 강제하려고 내가 설치 프로그램을 만든 사람에게 연락, 그들은 didn를

' 자동 설치를 사용 가능으로 설정하고 새 설치를 사용하지 않습니다.

설치 관리자는 Java AWT를 실행하는 InstallAnywhere 패키지이므로 Spy ++는 버튼 ID를 표시하지 않습니다. 메인 윈도우를위한 핸들, 나는 SendKeys.SendWait("keys")을 사용하여 내가 필요한 자동화를 얻기 위해 키를 보내야한다고 믿는다.

SendKeys.SendWait("%n") ("다음"버튼을 누르는 "Alt-N"의 경우)을 사용하여 설치를 진행할 수 있지만 창을 숨기고 싶습니다. 특정 단계에서 완료 될 때를 알 수 없기 때문에 주기적으로 폴링하고 해당 키를 누릅니다. 거대한 해킹이지만 더 나은 옵션을 찾지 못했습니다. 문제는 이러한 키 누르기 각각에 대해 복원을 최소화하고 싶지 않다는 것입니다. 이보다 더 좋은 방법이있을거야, 그렇지?

답변

1

윈도우 7에 C# .NET을 4.0을 사용하여 불행하게도 키보드 입력을 활성 창에 간다, 그래서 키보드 입력을 시뮬레이션 아무것도 같은 방식으로 작동합니다.

접근성 후크를 추가 한 경우 UI automation framework을 사용할 수 있습니다. 다음은 Raymond's blog의 간단한 샘플입니다.

+0

추가 된 것처럼 보이지 않습니다. 내게 필요한 옵션이 설치 관리자에 연결됩니다. 팁을 가져 주셔서 감사합니다. – kmort

관련 문제