vb如何结束进程?

vb如何结束进程?,第1张

分类: 电脑/网络 >>程序设计 >凳兆裤>其他编程语言

问题描述:

我枣简想要编一个监控进程(比如iexplore.exe)这个进程,每秒钟检测一次,发现这个进程马上结束掉这个进程,请问各位,这个代码应该怎么编写。

解析:

这个问题可以这样的解决:vb6下编译通过的。

Private Const PROCESS_TERMINATE = &H1

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Timer1_Timer()

Dim hProcess As Long

hProcess = Shell("notepad.exe", vbNormalFocus) '取得id

Sleep (1000)

hProcess = OpenProcess(PROCESS_TERMINATE, 0&, hProcess) '取得句柄

TerminateProcess hProcess, 0&'结束进程

Timer1.Enabled = False

CloseHandle hProcess

End Sub

注意:timer1的interval的属性设置为1000,

:notepad.exe是随便写的,你可以改成你要的监控进程.

:所有的vb的api函数都在vb6的猜搭apiview工具之中可以得到!

可以参考下面的两种参考方法旅岩升:

第一种:用cmd中的taskkill结束程序

shell ”cmd/c taskkill /f /im 你的进程名.exe“

第二种:(WIN7)以下的电脑可以使用,用ntsd结束程序枣亩

shell ”cmd/c ntsd -c q -pn 用户的进程名.exe“

扩展资料:

参考语句

For Each...Next 语句: 对于数组或集合中的每一个元素,重复一组语句。 

FormatDateTime 函数: 返回格式化为日期或时间的表达式。

FormatNumber 函数: 返回格式化为数的表达式。

Function 语句: 声明形成 Function 过程体的名称、参数拆老和代码。

GetObject 函数: 从文件返回对“自动”对象的访问。

参考资料来源:百度百科-Visual Basic

widebright - 一派掌门 十二级 有点搞笑啊~向窗口发送,WM_CLOSE 消息,可以用findwindows那个api 难道我不是向窗口发送wm_close消息吗?难道获取窗简族李口句柄非得用findwindows这个函数吗?

还有楼主~你的提问本身就有点问题~千千本身并没有关闭 提示 至少我的版本没有~不知道你是什么版的?你自己点关闭按钮 它还会d出提示窗口?

如果千千本身没有这个提示 。你完全可以自己虚拟一个窗口出来用MSGBOX

在结束之前d出窗口 判断用户点 确定还是取消 如果确定就 关闭。否就继续开着。

我这个代码完全没问题的~我测试过 拿腾讯tt这个浏览器~在选项里 退出时提示关闭确认 前打勾~

直接结束进程是不会有提示~但是用我代码结束会由提拦迟示~

Private Const WM_CLOSE = &H10

Private Const WM_QUIT = &H12

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Declare Function WindowFromPointXY Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long

Private Declare Function GetCursorPos Lib "user32" (LpPoint As POINTAPI) As Long

Private Type POINTAPI

x As Long

y As Long

End Type

Dim ahwnd As Long

Dim xy As POINTAPI '(声穗如明变量类型)

Private Sub Command1_Click()

PostMessage Text2, WM_CLOSE, 0, 0 '或 PostMessage Handle,WM_QUIT,0,0

End Sub

Private Sub Timer1_Timer()

GetCursorPos xy '(取得XY的座标)

ahwnd = WindowFromPointXY(xy.x, xy.y) '(取得当前鼠标坐标下窗口的句柄)

Text1 = ahwnd

End Sub

2个text 1个timer 1个按钮

鼠标移动到要关闭的窗体~text1显示句柄 在text2输入句柄 点按钮关闭


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8240610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存