2013-02-02 2 views
0

내 프로그램에서 화면 키보드 (osk.exe)의 Windows 7을 프로그래밍 방식으로 열려고합니다. 나는이 on this page에 대한 좋은 안내서를 발견했으며 UAC가 꺼져있을 때 꽤 잘 작동합니다.ShellExecute가 UAC가 활성화 된 온 스크린 키보드를 열 수 없음

UAC가 켜지면 프로그램을 전혀 열지 못하고 이유를 찾을 수 없습니다. 시작 메뉴에서 키보드를 열면 UAC 프롬프트가 표시되지 않으므로 관리자 권한이 필요하지 않습니다.

실행 파일이 Windows 시스템 폴더에 있기 때문에 그렇습니까? 그렇다면 실행 가능한 프로그램을 실행하는 다른 방법이 있습니까?

반환되는 오류는 'sysnative'경로가 UAC가 활성화 된 상태에서 작동하지 않기 때문에 3, ERROR_PATH_NOT_FOUND입니다. 실패 : 경로는 오류와 함께 실패없이 "osk.exe"를 실행하려고

"\ WINDOWS \ system32를 \ osk.exe C는"실행, 마지막으로

"온 스크린 키보드를 시작할 수 없습니다" 오류 코드 5 : SE_ERR_ACCESSDENIED (리디렉션 기능을 해제했을 때 this question에서 제안한대로)

+0

'ShellExecute '호출은 무엇을 반환합니까? 실패 할 경우 오류 코드를 제공합니다. http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx – shf301

+0

오류는 3, ERROR_PATH_NOT_FOUND입니다. 아래의 코멘트도 말했다. – Adion

답변

0

메시지에서 참조한 C++ 코드 샘플을 테스트했습니다. 루틴은 VS devenv에서 시작되었거나 독립 실행 형 EXE가 사용 가능한 UAC 모드에서 화면 키보드를 항상 보여 주었기 때문에 시작되었습니다. 내 OS : Windows 7 Ult. SP1 64 비트.