2009-12-10 6 views
2

Microsoft XPS Document Writer 드라이버를 사용하여 보고서를 인쇄하는 응용 프로그램에서 작업하고 있습니다. 사용자가 열려있는 파일을 덮어 쓰려고 시도하면 드라이버는 사용자에게 저장할 수있는 권한이없는 오류 대화 상자를 표시합니다. 그러나 하나의 품질 관리 시스템에서는 팝업 대화 상자가 표시되지 않습니다. 응용 프로그램에서 자체 오류 대화 상자를 팝업으로 표시하려고하지만 드라이버의 오류 대화 상자가 나타나지 않는 경우에만 표시합니다. 드라이버의 오류 대화 상자가 나타나는지 어떻게 감지합니까 ??C# .Net에서 대화 상자가 나타나면 어떻게 감지합니까?

답변

1

오류를 멀리 전파하지 마십시오.

파일의 이름을 물어보고, 존재하지 않는 것을 감지하고, 오류를 표시하고, 문서를 프린터로 전달하십시오.

+0

파일 프롬프트가 Microsoft XPS 문서 드라이버에서 이미 완료되었으므로 수동으로 파일을 요구하고 전달할 수 없습니다. – ATDev

1

나는 이것이 100 % 맞을 수 있다고 생각하지 않습니다. 모르는 API가 없으면 대화 상자가 표시되는지 여부를 알 수있는 유일한 방법은 스크래핑을 스크리닝하는 것입니다. 즉, 활성 창 세트를보고 오류 대화 상자가 나타 났음을 나타내는 제목/메시지가 있는지 확인하십시오.

그런 접근법에는 몇 가지 문제점이 있습니다. 첫 번째는 가양 성을 생성한다는 것입니다. 비슷한 이름의 유사한 대화 상자를 사용하면 속일 수 있습니다.

사용자가 대화 상자를 닫기 전에 코드가 실행된다는 보장은 없습니다. 따라서 대화 상자가 실제로 나타나지 않는 경우 대화 상자가 표시되지 않는다고 결론 내릴 수 있습니다.

관련 문제