2012-11-09 16 views
5

Sto creando un servizio che monitorerà una cartella specifica e stamperà qualsiasi file inserito in questa cartella. Sto avendo difficoltà con i vari tipi di file che potrebbero essere inviati alla cartella da stampare.Stampa di qualsiasi tipo di file

Il mio primo tentativo è con i file di Microsoft Office. Quello che sto cercando di fare è avviare l'ufficio per stampare il file. È più come una presa, non sto davvero usando una libreria o qualcosa del genere.

Finora questo approccio funzionava, ma quando nessuna applicazione di Office è mai stata avviata sul computer, Office richiede le iniziali dell'utente. Quindi, in questo caso la mia applicazione non funzionerebbe, dal momento che sto facendo questo programmaticamente.

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

in questo momento sto provando con i file di Microsoft Office, ma si applicherà lo stesso approccio per altri tipi pure.

C'è comunque un modo per aggirare le iniziali richieste dalla prima esecuzione di Office?

O un migliore approccio al mio problema?

Qualsiasi aiuto è apprezzato, grazie in anticipo.

+0

Potrebbe aiutare. È un codice VB, ma potrebbe aiutare a trovare un modo per evitare o chiudere le finestre di dialogo dalle app di Office: http://support.microsoft.com/kb/259971 –

risposta

1

Non c'è proprio niente che tu possa fare; per l'applicazione che stamperà ogni tipo di file che si intende supportare, è necessario assicurarsi che l'applicazione sia configurata correttamente.

Ciò significa che per l'ufficio (poiché viene eseguito come server COM out-of-process), è necessario eseguirlo sotto l'account che sta eseguendo la stampa in modo da poter inserire le iniziali e non verrà richiesto per esso quando il server tenta di stamparlo.

Lo stesso per ogni altra applicazione (supponendo che l'applicazione sia eseguita per stamparlo), deve essere eseguito come account in cui il processo verrà eseguito e configurato correttamente.

0

Utilizzare il monitoraggio dell'attività di registro dei registri di Winternals per capire dove Office memorizza le iniziali nel registro di Windows, quindi scrivere queste chiavi prima di stampare.

+0

Mentre questo aiuta il problema con Office, non aiuta con altre applicazioni potrebbe essere eseguita una volta sola durante l'inizializzazione dell'applicazione. Risolve solo una parte * molto * piccola del problema reale. – casperOne

Problemi correlati