2012-11-09 3 views
5

특정 폴더를 모니터링하고이 폴더에있는 파일을 인쇄하는 서비스를 만들고 있습니다. 인쇄 할 폴더로 보낼 수있는 다양한 파일 형식에 어려움을 겪고 있습니다.모든 파일 형식 인쇄

내 첫 번째 시도는 Microsoft Office 파일입니다. 제가하려는 것은 파일을 인쇄하기 위해 사무실을 시작하는 것입니다. 그것은 잡기 같이 더 많은 것이고, 나는 진짜로 도서관 같이 또는 그것을 좋아하지 않는다.

지금까지는이 방법을 사용할 수 있었지만 컴퓨터에서 Office 응용 프로그램을 시작하지 않은 경우 Office는 사용자 이니셜을 요구합니다. 그래서,이 경우 프로그래밍 방식으로하고 있기 때문에 제 응용 프로그램이 작동하지 않을 것입니다.

 ProcessStartInfo info = new ProcessStartInfo(myDocumentsPath); 
     info.Verb = "Print"; 
     info.CreateNoWindow = true; 
     info.WindowStyle = ProcessWindowStyle.Hidden; 
     Process.Start(info); 

지금은 Microsoft Office 파일을 사용하고 있지만 다른 유형에도 동일한 방법을 적용 할 것입니다.

첫 번째 Office 실행시 필요한 이니셜을 얻는 방법은 있습니까?

내 문제에 대한 더 나은 접근 방법은 무엇입니까?

도움을 주시면 감사하겠습니다.

+0

도움이 될 수 있습니다. VB 코드이지만 Office 응용 프로그램의 대화 상자를 피하거나 닫을 수있는 방법을 찾는 데 도움이 될 수 있습니다. http://support.microsoft.com/kb/259971 –

답변

1

할 수있는 일은 실제로 없습니다. 지원할 각 유형의 파일을 인쇄 할 응용 프로그램의 경우 응용 프로그램이 올바르게 구성되어 있는지 확인해야합니다.

즉, 아웃소 프로세스 COM 서버로 실행되므로 사무실에서 인쇄를 수행하는 계정으로 실행해야 이니셜을 입력 할 수 있으므로 입력하라는 메시지가 표시되지 않습니다 서버가 인쇄를 시도 할 때

모든 다른 응용 프로그램 (응용 프로그램이 인쇄되도록 가정 된 경우)과 동일하게 프로세스가 실행되고 올바르게 구성되는 계정으로 실행해야합니다.

0

Winternals의 regmon 레지스트리 활동 모니터를 사용하여 Office가 Windows 레지스트리에 이니셜을 저장하는 위치를 파악한 다음 인쇄하기 전에이 키를 씁니다.

+0

이 문제는 사무실에서 도움이되지만 다른 응용 프로그램에서는 도움이되지 않습니다. 응용 프로그램이 처음 실행될 때 일회성 초기화가 수행 될 수 있습니다. 실제 문제의 아주 작은 부분 만 해결합니다. – casperOne