kill di un processo Word
-
venerdì 29 giugno 2012 08:24
Ciao a tutti, mi chiamo nicola ed è la prima volta che scrivo nel Forum. Ho un problema di questo tipo:
Per controllare se un processo Word resta appeso, attraverso un progetto VB.Net 2003, mi creo un thread che effettua il controllo del processo( in oggetto). Se dopo un tot di millisecondi il processo risulta ancora attivo, faccio la Kill del processo dal Thread. Il sistema mi dice "System.ComponentModel.Win32Exception",
'Accesso Negato'
Il codice è il seguente:
ImportsSystem
ImportsSystem.Threading
ImportsSystem.Threading.Thread
ImportsSystem.Security.Permissions
PublicClassThreadMain
PublicstrdotName AsString
PublicstrdocName AsString
PublicsXML AsString
PublicidProcesso AsInteger
Publicterminate AsInteger
PublicdocName AsString
Publickk AsInteger
Publicfinito AsBoolean= False
PublicFunctionLaunchThread() AsInteger
DimmyT2 AsThreading.Thread
myT2 = NewThreading.Thread(AddressOfMe.DoWork)
myT2.IsBackground = True
myT2.Start()
Try
Console.WriteLine("Finito: {0}", finito)
CatchEx AsException
EndTry
Returnterminate
EndFunction
<SecurityPermissionAttribute(SecurityAction.Deny, Flags:=SecurityPermissionFlag.NoFlags)> _
PrivateSubDoWork()
Dimj AsInteger
Dimerrore AsString
Dimtrovato AsBoolean
DimcolProcess AsProcess
DimnomeProcess AsProcess()
Dimchiusura AsBoolean
Try
Forj = 100 To20000
colProcess = Process.GetProcessById(idProcesso)
IfNotcolProcess IsNothingThen
j = j + 1000
System.Threading.Thread.Sleep(1)
trovato = True
Else
trovato = False
EndIf
Next
Iftrovato Then
chiusura = colProcess.CloseMainWindow()
colProcess.Close()
Process.GetProcessById(idProcesso).Kill()
terminate = 1
EndIf
Catchex AsException
errore = ex.ToString
terminate = 2
EndTry
EndSub'DoWork
Riuscite a darmi una mano, grazie
Tutte le risposte
-
sabato 30 giugno 2012 04:51
Ciao baby_lee67,
You wrote on 29/06/2012 :
Per controllare se un processo Word resta appeso, attraverso un progetto VB.Net 2003, mi creo un thread che effettua il controllo del processo( in oggetto). Se dopo un tot di millisecondi il processo risulta ancora attivo, faccio la Kill del processo dal Thread. Il sistema mi dice "System.ComponentModel.Win32Exception",
'Accesso Negato'per fortuna :-) perché lo devi "killare"? che è una pratica pessima.
.m
blog @ //milestone.topics.it -
martedì 3 luglio 2012 08:33
Ciao Mauro, grazie per la risposta. Purtroppo mi trovo in una situazione che devo per forza utilizzare la kill per eliminare un processo word appeso. Grazie
Saluti
Nicola
-
mercoledì 4 luglio 2012 06:57
Ciao Nicola,
You wrote on 03/07/2012 :
Ciao Mauro, grazie per la risposta. Purtroppo mi trovo in una situazione che devo per forza utilizzare la kill per eliminare un processo word appeso.
c'è poco da fare, devi avere i permessi per farlo e tipicamente l'utente normale non li, in particolare per enumerare i processi.
.m
blog @ //milestone.topics.it -
mercoledì 4 luglio 2012 10:40
Grazie Mauro, mi spiego meglio. In IIS ho impostato l'accesso all'utente Anonimo come amministratore. Manca forse qualche altro permesso o vi è un errore nel codice presente in allegato? Nuovamente ringrazio
Nicola
-
mercoledì 4 luglio 2012 12:26
Ciao baby_lee67,
You wrote on 04/07/2012 :
Grazie Mauro, mi spiego meglio. In IISho impostato l'accesso all'utente Anonimo comeamministratore. Manca forse qualche altro permesso o vi è un errore nel codice presente in allegato? Nuovamente ringrazio
cosa? il worker process di IIS gira come admin, e l'utemnte anononimo è admin? quindi chiunque si connetta a quel sito ha permessi amministrativi?
.m
blog @ //milestone.topics.it -
giovedì 5 luglio 2012 07:20
Ciao Mauro, il tutto gira su una virtual machine XP installata sul mio PC.
Nicola
-
giovedì 5 luglio 2012 07:35
-
giovedì 5 luglio 2012 13:13
Ciao Mauro, mi spiego meglio:
l'utente finale crea i documenti word con delle macro (con possibili errori), in questo caso carico un XML nel documento Word. Ci sono dei casi in cui la Run della macro lascia appeso il processo WINWORD. Essendo il numero di utenti elevato, ci potrebbero essere più processi WINWORD appesi questo provocherebbe un crollo vertiginoso delle prestazioni del server. Questo è il motivo che mi porta a crearmi un thread per controllare se il processo WINWORD dopo un tot di secondi gira ancora, e solo in questo caso cerco di fare la kill di tale processo. Saluti
Nicola
-
venerdì 6 luglio 2012 11:28
Ciao baby_lee67,
You wrote on 05/07/2012 :
l'utente finale crea i documenti word con delle macro (con possibili errori), in questo caso carico un XML nel documento Word. Ci sono dei casi in cui la Run della macro lascia appeso il processo WINWORD. Essendo il numero di utenti elevato, ci potrebbero essere più processi WINWORD appesi questo provocherebbe un crollo vertiginoso delle prestazioni del server. Questo è il motivo che mi porta a crearmi un thread per controllare se il processo WINWORD dopo un tot di secondi gira ancora, e solo in questo caso cerco di fare la kill di tale processo.
oltre ai problemi di security secondo me da "dentro" IIS non ce la farai mai oltre al non essere sicuramente affidabile.
probabilmente la cosa migliore è un servizio per Windows, che faccia da Watch Dog, che gira con permessi elevatissimi e che ha l'unico scopo di monitorare questa cosa. Se il servizio non è in ascolto su nulla, quindi non lo puoi pilotare da fuori non ha ìi neanche nessun rischio di attacchi.
.m
blog @ //milestone.topics.it- Contrassegnato come risposta Irina TurcuMicrosoft Contingent Staff, Owner mercoledì 11 luglio 2012 14:04
-
lunedì 9 luglio 2012 07:11
Ciao Mauro, è stato impostato come Anonimus access l'utente amministratore. Il nostro problema non riguarda la sicurezza su IIS, volutamente abbiamo configurato IIS come descritto sopra. Visto che le chiamate agli oggetti vengono fatte con l'utente amministratore il servizio dovrebbe permettere di killare il processo in oggetto. Saluti
Nicola
-
lunedì 9 luglio 2012 19:04
Ciao baby_lee67,
You wrote on 09/07/2012 :
Ciao Mauro, è stato impostato come Anonimus access l'utente amministratore. Il nostro problema non riguarda la sicurezza su IIS, volutamente abbiamo configurato IIS come descritto sopra. Visto che le chiamate agli oggetti vengono fatte con l'utente amministratore il servizio dovrebbe permettere di killare il processo in oggetto. Saluti
Nicolae? funziona?
.m
blog @ //milestone.topics.it -
martedì 10 luglio 2012 07:16
Ciao Mauro, si funziona
Nicola

