2009-03-29 7 views
2

bitblt를 사용하여 화면을 캡처하고 keybd_event 및 mouse_event 호출을 사용하여 키보드 및 마우스 이벤트를 보내는 C# 응용 프로그램을 개발했습니다. requestedExecutionLevel 레벨 = "highestAvailable"있는 UIAccess = "true"를Vista UAC를 사용한 화면 캡처 및 이벤트

로그인 응용 프로그램과 신뢰할 수있는 위치 (프로그램 파일)에 배치 :

는 마이크로 소프트에 따르면 내가 가진 app.manifest을 수정할 필요가 있었다.

Vista에서 권한 상승하에 실행되도록 응용 프로그램을 얻으려고했지만 UAC 대화 상자가 나타나면 해당 화면을 캡처하지 못하고 키보드 및 마우스 이벤트가 UAC 대화 상자에 표시되지 않습니다.

UAC가 다른 데스크톱에서 실행되는 것 같습니까 ?? 그렇다면 어떻게 캡처 할 수 있습니까? 바탕 화면이 UAC 대화 상자로 전환되면 어떻게 감지합니까? 아니면 방금 한 걸음도 놓쳤습니까?

답변

1

수 없습니다. UAC 데스크톱은 누구나 액세스 할 수 없으므로 안전합니다. 데스크톱 스위치 이벤트를 감지하려면 SENS 또는 WTSRegisterSessionNotification을 사용하려고합니다. 그러나 그것은 매우 유망 해 보이지 않습니다.

2

UAC는 보안 된 데스크톱에서 실행되며 시스템 계정에서 실행되는 신뢰할 수있는 프로세스 만 해당 컨텍스트에서 실행되도록 허용됩니다.

이것은 사용자 입력을 스푸핑하거나 캡처하는 프로세스를 정확히 수행하는 것을 방지하기위한 것입니다.