找回密码
 加入
搜索
查看: 2674|回复: 12

[网络通信] 【已解决】求助,结束当前用户进程的函数

[复制链接]
发表于 2019-11-15 13:14:06 | 显示全部楼层 |阅读模式
本帖最后由 anythinging 于 2019-11-15 19:26 编辑

各位大人,我想结束当前用户的某一个进程,尝试使用_rundos 调用taskkill能实现但是很慢,使用ProcessClose好象有 在存在多个进程的情况下的不足之处(多个相同进程时好象只能结束PID 最高的进程)。

看帮助理解了一点点,好象可以通过ProcessList列出进程,再通过_WinAPI_GetProcessID匹配当前用户名称确定进程id,然后再用ProcessClose关闭进程,不知理解的对不对?但无耐水平有限,无法写出代码,恳请指点!

谢谢!

发表于 2019-11-15 16:27:52 | 显示全部楼层
游客,如果您要查看本帖隐藏内容请回复

点评

这正是我想要的,感谢!  发表于 2019-11-15 19:09

评分

参与人数 1金钱 +30 收起 理由
anythinging + 30 赞一个!

查看全部评分

发表于 2019-11-15 15:06:02 | 显示全部楼层
                Do
                        ProcessClose('进程名称')
                        ProcessWaitClose('进程名称')
                        Sleep(10)
                Until Not ProcessExists('进程名称')
 楼主| 发表于 2019-11-15 15:38:52 | 显示全部楼层
tubaba 发表于 2019-11-15 15:06
Do
                        ProcessClose('进程名称')
                        ProcessWaitClose('进程名称')

感谢回复,这个不能按用户区分进程,比如如果用管理员的话,会把其它用户的进程也结束了。我是想结束当前用户的进程,谢谢!
 楼主| 发表于 2019-11-15 15:40:04 | 显示全部楼层
比如在同一台电脑上2个用户,用户a和用户b都运行了一个notepad.exe,用户a只结束自己的notepad.exe,不管用户b的
 楼主| 发表于 2019-11-15 15:42:09 | 显示全部楼层
参考之前的案例,我只能写到这Func _ProcessUser($ProcessName, $sUser = @UserName)
        Local $aProcess = ProcessList($ProcessName)

之后好象是要用到_winapi之类的
 楼主| 发表于 2019-11-15 19:16:17 | 显示全部楼层
zghwelcome 发表于 2019-11-15 16:27
**** 本内容被作者隐藏 ****

还想请教一下,如果要清除当前用户所有的notepad.exe进程,下面是否对?
If IsArray($aAry) Then
     For $ii = 1 To $aAry[0]
     ProcessClose($aAry[$ii])
     Next
                EndIf
我这样做会提示个错误,直接退出。我想应该是我对数组操作的错误,还请指点,谢谢!
发表于 2019-11-15 19:18:25 | 显示全部楼层
If IsArray($aAry) Then
        For $ii = 0 To UBound($aAry) - 1
                ProcessClose($aAry[$ii])
        Next
EndIf



点评

虽然看不太懂,但绝对好使!  发表于 2019-11-15 19:23

评分

参与人数 1金钱 +30 收起 理由
anythinging + 30

查看全部评分

发表于 2019-11-15 23:14:44 | 显示全部楼层
我猜想,应该还是靠句柄,同样的程序,句柄却是唯一。。。看看答案。。。
发表于 2019-11-16 23:47:50 | 显示全部楼层
谢谢分享,学习学习。
发表于 2019-11-18 10:37:10 | 显示全部楼层
我看看是什么内容啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 06:28 , Processed in 0.077849 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表