VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 2260|回复: 6

[求助] win7 下OpenProcess失败了,怎么办?

[复制链接]
发表于 2015-7-22 10:21:53 | 显示全部楼层 |阅读模式
这是xp下运行正常的函数模块:
Private Sub UntilExeStop(cExptExeStr As String)
Dim hProc As Long, lExit As Long
Dim hFirstHwnd As Long
hFirstHwnd = Shell(cExptExeStr, vbNormalFocus)
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hFirstHwnd)
Do
  GetExitCodeProcess hProc, lExit '连续跟踪当前运行的外部程序是否关闭
  DoEvents
Loop While lExit = STILL_ACTIVE
End Sub

可是在win7下OpenProcess失败了,hProc返回值=0。采用管理员权限也不行。各位大侠,怎么办啊?(百度了也没有找到解决办法)

点评

Debug.Print一下Shell的返回值,然后在任务管理器里面查一下对应的PID是否存在,是否是64位进程  发表于 2015-7-23 16:47
发表于 2015-7-22 10:29:11 | 显示全部楼层
亲,使用前提升到system权限了没?

点评

操作当前用户的进程应该是不需要管理员权限的  发表于 2015-7-23 16:46
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-22 11:47:39 | 显示全部楼层
huangshanvs 发表于 2015-7-22 10:29
亲,使用前提升到system权限了没?

用管理员权限运行,是这个意思吗?不行啊。如若不是,如何提升到system权限,还望大侠告知,有代码指点最好了!本人有点菜,高深了可能玩不动。
回复 支持 反对

使用道具 举报

发表于 2015-7-22 16:51:05 | 显示全部楼层
  1. Private Function AquireDebugToken() As Boolean '提权
  2.     Dim hToken  As Long
  3.     Dim tTP     As TOKEN_PRIVILEGES
  4.     Dim tTPPrev As TOKEN_PRIVILEGES
  5.     Dim tLUID   As LUID

  6.     If OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken) Then
  7.         If LookupPrivilegeValue("", "SeDebugPrivilege", tLUID) <> 0 Then
  8.             With tTP
  9.                 .PrivilegeCount = 1
  10.                 .TheLuid = tLUID
  11.                 .Attributes = SE_PRIVILEGE_ENABLED
  12.             End With

  13.             If AdjustTokenPrivileges(hToken, 0, tTP, Len(tTP), tTPPrev, Len(tTPPrev)) <> 0 Then
  14.                 AquireDebugToken = True
  15.             End If
  16.         End If
  17.         CloseHandle hToken
  18.     End If
  19. End Function
复制代码
你试试这个,声明就不发了,到处都查得到
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-23 08:30:03 | 显示全部楼层
huangshanvs 发表于 2015-7-22 10:29
亲,使用前提升到system权限了没?

亲,提升system权限是这样:用管理员权限运行本exe,对吗?不行啊,试过了。如果还有其它高级方式,估计我就不会了,希望亲写点具体实例+略加注释,谢谢先!

点评

好奇怪啊,今天我回复了才看到4楼的信息,网络延迟也没有这么惊人啊!  发表于 2015-7-23 08:32
回复 支持 反对

使用道具 举报

发表于 2015-7-28 11:21:22 | 显示全部楼层
是不是目标进程有问题 比如 w7 64位的自带程序 你就没法对他进行内存的操作
回复 支持 反对

使用道具 举报

发表于 2015-7-29 20:14:16 | 显示全部楼层
32位还是64位?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-7-5 11:45

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表