104 messaggi dal 27 ottobre 2005
Salve a tutti,

volevo sapere se secondo voi è possibile aprire un documento (Office, PDF, MSG, ...) da un servizio windows (lato client). Mi spiego meglio:
sto realizzando un servizio che controlla/monitorizza una particolare directory (sul client) e quando in essa vengono copiati dei documenti (Word/Excel/PowerPoint, Acrobat, email,...) automaticamente li apre.
Ho creato un progetto "Windows Service - .NET Framework" e quando lo eseguo (debug) come "console application" tutto funziona: copio un documento nella cartella in questione e questo viene "automaticamente" aperto con l'applicazione associata (Office, Acrobat, ..) viceversa, utilizzando/installando l'applicazione come servizio il documento non viene visualizzato anche se tra i processi vedo il processo Winword.exe/Excel.exe/ ... che è stato correttamente lanciato.
Ulteriori informazioni:
- per monitorare la cartella utilizzo "System.Timers.Timer"
- per aprire il documento "System.Diagnostics.Process.Start"

Grazie
Stefano
Modificato da steual il 22 gennaio 2020 11:35 -
103 messaggi dal 01 febbraio 2017
Presumo che tu stia parlando di piattaforma windows . In tal caso penso che che il servizio dovrebbe avere i privilegi per interagire col desktop utente, quindi ci dev'essere un utente collegato ed inoltre dovrebbe essere eseguito sotto una utenza di windows valida.
Facci sapere se risolvi.
Gino.

UNSTRING identifier-1 id-2 id-3
DELIMITED BY [ALL] OR [ALL] literal-1 lit-2
INTO {id-4 [DELIMITER IN id-5]
[COUNT IN id-6]}
[WITH POINTER id-7]
[TALLYING IN id-8]
[ON OVERFLOW imperative-statement-1]
[NOT ON OVERFLOW imper-2]
[END-UNSTRING]
104 messaggi dal 27 ottobre 2005
grazie per la risposta.
Si, sto parlando di un servizio windows. Per creare il servizio ho seguito questo articolo Microsoft (https://docs.microsoft.com/en-us/dotnet/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer) ed ho impostato l'Account property a "LocalSystem":
"Set the Account property to LocalSystem from the drop-down list."

grazie
103 messaggi dal 01 febbraio 2017
Fai attenzione, che il tuo non è un servizio 'silente', ma vuoi interagire col desktop e quindi le due condizioni di cui prima devono essere soddisfatte.
Gino

UNSTRING identifier-1 id-2 id-3
DELIMITED BY [ALL] OR [ALL] literal-1 lit-2
INTO {id-4 [DELIMITER IN id-5]
[COUNT IN id-6]}
[WITH POINTER id-7]
[TALLYING IN id-8]
[ON OVERFLOW imperative-statement-1]
[NOT ON OVERFLOW imper-2]
[END-UNSTRING]
104 messaggi dal 27 ottobre 2005
Verificherò. Ad ogni modo, causa queste "condizioni" ed altre problematiche, sto abbandonando la soluzione Servizio con apertura del documento.

Grazie
Stefano
137 messaggi dal 10 agosto 2019
per monitorare la cartella potresti anche utilizzare questo https://docs.microsoft.com/it-it/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8
104 messaggi dal 27 ottobre 2005
Grazie del suggerimento. Ho provato anche questa soluzione (filesystemwatcher) ma come descritto anche in diversi articoli è poco "affidabile":
https://stackoverflow.com/questions/3612311/monitoring-a-directory-for-new-file-creation-without-filesystemwatcher/3612432

https://stackoverflow.com/questions/20956844/filesystemwatcher-does-not-fire-after-sometime

Personalmente l'ho testata a fondo ed in effetti a volte, improvvisamente, gli eventi non non vengono più generati.

Grazie
Stefano

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.