excell in the process window

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

hi i have a windows service that uses an excell workbook
when i create the excell app
i cant distroy it after i am finished i am using this code
whats wrong?
thanks

Dim processes1(), p1 As Process
Try
processes1 = Process.GetProcesses()
For Each p1 In processes1
If Not (p1.MainModule Is Nothing) Then
If
System.IO.Path.GetFileName(p1.MainModule.FileName).ToLower() = "excel.exe"
Then
Try
p1.Close()
'p1.CloseMainWindow()
Catch er1 As Exception
MsgBox(er1)
End Try

'Exit For
End If
End If
Next
Catch ex As SystemException
MsgBox(ex.message)
End Try
 
Private Function IsExcelRunning() As Boolean
Dim pExcel As System.Diagnostics.Process() =
System.Diagnostics.Process.GetProcessesByName("excel")
If pExcel.Length >= 1 Then
Return True
Else
Return False
End If
End Function

The above function will tell you if MS Excel is running

-----------------------------------------------------------------------

You could also check if Excel is running by:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Integer

Dim intExcel As Integer = FindWindow("xlmain", vbNullString)

If intExcel isn't 0 (zero) then Excel is running

------------------------------------------------------------------------------------------

To do the same thing along the lines as you, do this:

Imports System.Diagnostics

Dim p As Process
Dim proc As New Process
For Each p In Process.GetProcesses
If p.ProcessName = "EXCEL" Then
p.Kill()
End If
Next
 
Private Function IsExcelRunning() As Boolean
Dim pExcel As System.Diagnostics.Process() =
System.Diagnostics.Process.GetProcessesByName("excel")
If pExcel.Length >= 1 Then
Return True
Else
Return False
End If
End Function

The above function will tell you if MS Excel is running

-----------------------------------------------------------------------

You could also check if Excel is running by:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Integer

Dim intExcel As Integer = FindWindow("xlmain", vbNullString)

If intExcel isn't 0 (zero) then Excel is running

------------------------------------------------------------------------------------------

To do the same thing along the lines as you, do this:

Imports System.Diagnostics

Dim p As Process
Dim proc As New Process
For Each p In Process.GetProcesses
If p.ProcessName = "EXCEL" Then
p.Kill()
End If
Next
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top