如何声明全局变量以便从任务管理器中杀死第二个 EXCEL.EXE
How to declare global variable in order to kill second EXCEL.EXE from Task Manager
以下代码在任务管理器中打开两个 EXCEL.EXE。
我想在 Form1 关闭时关闭任务管理器中的第二次打开 EXCEL.EXE。
Imports Microsoft.Office.Interop
Public Class Form1
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
'Kill all EXCEL.EXE process from Task Manager
For Each prog As Process In Process.GetProcessesByName("EXCEL")
prog.Kill()
Next
Dim FirstxlApp As New Excel.Application 'Open first EXCEL.EXE in the Task Manager
Dim datestart As Date = Date.Now
Dim SecondxlApp As New Excel.Application 'Open second EXCEL.EXE in the Task Manager
Dim dateEnd As Date = Date.Now
SecondxlApp.Visible = True
Dim wb1 As Excel.Workbook
wb1 = SecondxlApp.Workbooks.Open("C:\Book1.xlsx")
End Sub
Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim xlp() As Process = Process.GetProcessesByName("EXCEL")
For Each Process As Process In xlp
If Process.StartTime >= datestart And Process.StartTime <= dateEnd Then
Process.Kill()
Exit For
End If
Next
End Sub
End Class
如何声明全局变量以解决以下错误?
您的变量 dateEnd
和 dateStart
隐藏在 FormClosing
方法中,因为它们仅在 Form_Load
方法中声明。
将您的代码更改为:
Public Class Form1
Dim dateEnd, dateStart As DateTime
Private Sub Form_load
然后它们将可以通过表单的所有方法访问。
以下代码在任务管理器中打开两个 EXCEL.EXE。
我想在 Form1 关闭时关闭任务管理器中的第二次打开 EXCEL.EXE。
Imports Microsoft.Office.Interop
Public Class Form1
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
'Kill all EXCEL.EXE process from Task Manager
For Each prog As Process In Process.GetProcessesByName("EXCEL")
prog.Kill()
Next
Dim FirstxlApp As New Excel.Application 'Open first EXCEL.EXE in the Task Manager
Dim datestart As Date = Date.Now
Dim SecondxlApp As New Excel.Application 'Open second EXCEL.EXE in the Task Manager
Dim dateEnd As Date = Date.Now
SecondxlApp.Visible = True
Dim wb1 As Excel.Workbook
wb1 = SecondxlApp.Workbooks.Open("C:\Book1.xlsx")
End Sub
Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim xlp() As Process = Process.GetProcessesByName("EXCEL")
For Each Process As Process In xlp
If Process.StartTime >= datestart And Process.StartTime <= dateEnd Then
Process.Kill()
Exit For
End If
Next
End Sub
End Class
如何声明全局变量以解决以下错误?
您的变量 dateEnd
和 dateStart
隐藏在 FormClosing
方法中,因为它们仅在 Form_Load
方法中声明。
将您的代码更改为:
Public Class Form1
Dim dateEnd, dateStart As DateTime
Private Sub Form_load
然后它们将可以通过表单的所有方法访问。