VB.net Kill() 彻底结束进程

Neusoft06 2012-05-10 01:32:37
Private Sub ProcessKill(ByVal myExcel As Excel.Application)
Dim p As New System.Diagnostics.Process
Dim inst As Process
Dim myProcess() As Process

myProcess = System.Diagnostics.Process.GetProcessesByName("EXCEL")
For Each inst In myProcess
'If inst.Handle.ToInt32 = myExcel.Hinstance Then

p = System.Diagnostics.Process.GetProcessById(inst.Id)
p.Kill()
'End If

Next

我想关闭当前使用的进程 myExcel
怎么判断它的位置呢?myExcel.Hwnd 与 inst.Handle.ToInt32 不相等。。。。。。。。。。。。
...全文
1214 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Neusoft06 2012-06-08
  • 打赏
  • 举报
回复
用楼上的方法,问题解决了
Public Const WM_CLOSE = &H10 是什么意思呀?
kxyzjm62 2012-05-30
  • 打赏
  • 举报
回复
Imports System.Runtime.InteropServices

Public Class Form1
Public Const WM_CLOSE = &H10

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim EXCELApp As Excel.Application

EXCELApp = New Excel.Application()
EXCELApp.Visible = True
'EXCELApp.Workbooks.Add()
EXCELApp.Workbooks.Open(System.Environment.CurrentDirectory & "\Book1.xls")


End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim hwndPPt As Integer

hwndPPt = MyApi.FindWindow("XLMAIN", "Microsoft Excel - Book1.xls")

'MsgBox("hwndEXCEL (" & Hex(hwndPPt) & ") has the Window handle to " & _
' "EXCEL's Main Window." & vbCr & " Click OK to close EXCEL.")

'EXCELApp.Quit()
MyApi.SendMessageA(hwndPPt, WM_CLOSE, 0, 0)
End Sub
End Class
Public Class MyApi
<DllImport("user32.dll")> Public Shared Function _
FindWindow(ByVal strClassName As String, ByVal strWindowName _
As String) As Integer
End Function

<DllImport("user32.dll")> Public Shared Function _
SendMessageA(ByVal hWnd As Integer, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
End Function


End Class
要添加对EXCEL的引用
Neusoft06 2012-05-28
  • 打赏
  • 举报
回复
明天试试
恐龙抗狼 2012-05-26
  • 打赏
  • 举报
回复
判断 myProcess.lenth的长度

Neusoft06 2012-05-23
  • 打赏
  • 举报
回复
谢谢离7楼的,麻烦你帮我看看吧
兔子-顾问 2012-05-19
  • 打赏
  • 举报
回复
结束进程方式无法关闭,尝试这个链接的方法,以前看过,不过不记得了。不确定这个方法管用,不过你可以试试,不可以我在帮你验证。
http://hi.baidu.com/%CF%E8%CC%EC/blog/item/aa67e54550f8513b879473bd.html
Neusoft06 2012-05-18
  • 打赏
  • 举报
回复
我只想关闭程序使用的EXCEL进程
hzybc 2012-05-18
  • 打赏
  • 举报
回复
myProcess = System.Diagnostics.Process.GetProcessesByName("EXCEL")



myProcess = System.Diagnostics.Process.GetProcessesByName("EXCEL.exe")
沐NeMo 2012-05-18
  • 打赏
  • 举报
回复
所有打开的EXCEL进程都关闭掉,是这样的。
Neusoft06 2012-05-18
  • 打赏
  • 举报
回复
这样会把所有打开的EXCEL进程都关闭掉
Neusoft06 2012-05-17
  • 打赏
  • 举报
回复
还是不行
沐NeMo 2012-05-11
  • 打赏
  • 举报
回复
inst.Handle.ToInt32 去掉.ToInt32

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧