如何关闭Shell打开的窗口?

crycoming 2004-08-04 02:43:28
下面的代码在XP下无法关闭,不知道有什么问题或者有没有更好的办法
Option Explicit
Const SYNCHRONIZE = &H100000
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

Sub main()
Dim ProcessId As Long
Dim hProcess As Long
ProcessId = Shell("notepad.exe", 1) '此处利用了 Shell当函数使用时返回的任务标识
hProcess = OpenProcess(SYNCHRONIZE, False, ProcessId)
Call TerminateProcess(hProcess, 3838)
End Sub
...全文
490 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cso 2004-08-04
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3035/3035511.xml?temp=3.225344E-02
rainstormmaster 2004-08-04
  • 打赏
  • 举报
回复
OpenProcess()的第一个叁数,指的是所取得的hProcess所具有的能力,像PROCESS_QUERY_INFORMATION 便是让GetExitCode()可取得hProcess所指的process之状态,而PROCESS_TERMINATE,便是让TerminateProcess(hProcess..)的指令能够生效,也就是说,不同叁数设定,使hProcess所具有的权限、能力有所不同。

所以,你只要使OpenProcess()的第一个叁数为PROCESS_TERMINATE就可以了关闭了,当然,针对于TerminateProcess(hProcess, 3838)你最好将第一个参数设为PROCESS_TERMINATE Or PROCESS_QUERY_INFORMATION,下面是修改后的代码:

Option Explicit
Const PROCESS_QUERY_INFORMATION = &H400
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

Sub main()
Dim ProcessId As Long
Dim hProcess As Long
ProcessId = Shell("notepad.exe", 1) '此处利用了 Shell当函数使用时返回的任务标识
hProcess = OpenProcess(PROCESS_TERMINATE Or PROCESS_QUERY_INFORMATION, False, ProcessId)
Call TerminateProcess(hProcess, 3838)
End Sub


1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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