2012-11-09 71 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文件,但我也會對其他類型應用相同的方法。

反正有辦法解決第一次辦公室運行所需的縮寫?

或者更好的方法來解決我的問題?

任何幫助表示讚賞,在此先感謝。

+0

可能會有所幫助。這是VB代碼,但可能有助於找到避免或關閉Office應用程序對話框的方法:http://support.microsoft.com/kb/259971 –

回答

1

沒有什麼可以做的;對於將打印您將支持的每種類型文件的應用程序,您需要確保應用程序配置正確。

這意味着對於辦公室(因爲它是作爲一個進程外COM服務器運行的),您應該在執行打印的帳戶下運行它,以便輸入首字母縮寫並且不會提示輸入當服務器嘗試打印它時。

對於其他所有應用程序(假設執行應用程序來打印它)都是一樣的,它需要作爲進程將在其下運行並正確配置的帳戶運行。

0

使用Winternals的regmon註冊表活動監視器來確定Office存儲在Windows註冊表中的首字母的位置,然後在打印之前寫入這些鍵。

+0

雖然這有助於解決辦公室問題,但它不會幫助任何其他應用程序這可能會在應用程序第一次運行時執行一次性初始化。它只能解決實際問題的一小部分。 – casperOne