重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
软糖来回答罗:通过System.Diagnostics命名空间下的Process类来关闭程序的进程
港北ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
Dim 进程集合 = Process.GetProcessesByName("进程名称")
For Each 进程 In 进程集合
进程.Kill()
'进程.Close() '或者使用关闭
Next
也可以先获取所有进程,再来判断这些进程的名称ProcessName
Dim 获取本地所有进程 = Process.GetProcesses()
For Each 进程 In 获取本地所有进程
If 进程.ProcessName = "explorer.exe" Then 进程.Kill()
Next
.net 和vb不一样。 窗口句柄之类的要声明称interger 32位的才行 如果在。net中 声明成long 那就执行不成功
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
声明完后
Me.Timer1.Enabled = True
Me.Timer1.Interval = 10000
MessageBox.Show("xinjing", "haha")
Timer1.Enabled = False
在timer的tick中
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim hWnd As Integer
hWnd = FindWindow(vbNullString, "haha")
If hWnd Then
'查找到窗口则关闭
PostMessage(hWnd, H10, 0, 0)
End If
End Sub
就可解觉问题
纯粹自问自答 在网上找了好久也没找到 最后自己摸索下 就记在这儿了
因为你窗口关闭的时候Time并没有释放,但是此时Label已经不能访问了
才会出现窗口句柄出错,你试试加上下面的话
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
timer1.Close()
timer2.Close()
End Sub
应该就不会报错了。
希望能帮到你。