L'esempio qui di seguito in VB.Net, ottiene tramite API l'id del processo aperto dal nostro programma (possiamo avere più processi aperti) e tramite il metodo Kill della classe process chiudere tale processo.
Utilizzare lo spazio dei nomi seguenti:
Imports System.Runtime.InteropServices
All'interno della classe di form o pagina web, scrivere la dichiarazione di api per ottenere ID del processo.
Qui di seguito tale dichiarazione.
Private Declare Auto Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hwnd As IntPtr, _
ByRef lpdwProcessId As Integer) As Integer
Nella funzione in cui viene aperto il file "Excel" scrivere delle variabili per ottenere l'identificativo e tramite process utilizzare il metodo kill per forzare la chiusura qui di seguito tali dichiarazioni.
Dim hWnd As Integer = 0
Dim IdProcess As Integer = 0
hWnd = xlApp.Hwnd
GetWindowThreadProcessId(hWnd, IdProcess )
'Dopo il quit elimina il processo
xlApp.Quit()
xlApp = Nothing
Dim ProcExcels() As Process = Process.GetProcessesByName("EXCEL")
For Each Processo As Process In ProcExcels
If Processo.Id = IdProcess Then
Processo.Kill()
Exit For
End If
Next
Nessun commento:
Posta un commento