首页
社区
课程
招聘
请大侠们指点迷精,谢谢
发表于: 2004-5-2 18:02 5488

请大侠们指点迷精,谢谢

2004-5-2 18:02
5488
看看我的这段VB代码中,哪出了问题,
为什么
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)的返回值,总是0呢?

源程序:
Private Sub Command1_Click()    '确定按键
Shell ("123.exe")              '调用程序
Call gethwnd("crackme002")     '打开程序
WriteProcessMemory pHandle, &H401595, 47, 1, 0&   '写入内存
CloseHandle pHandle别          '关闭句柄
End Sub

Private Sub gethwnd(proname As String)
Dim hwnd As Long 
hwnd = FindWindow(vbNullString, proname)   '调用findWindow
GetWindowThreadProcessId hwnd, pid   ' 使用进程标识符取得进程句柄
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)   '这的返回值为什么总是0
If (pHandle = 0) Then
MsgBox "Couldn't get a process handle!"
Exit Sub
End If
End Sub

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 6
支持
分享
最新回复 (2)
雪    币: 329
活跃值: (343)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
GetWindowThreadProcessId hwnd, pid   ' 使用进程标识符取得进程句柄

这里取回的PID是否有效? 检测过没?
2004-5-3 17:53
0
雪    币: 425
活跃值: (205)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢这个问题我已经解决了

pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)

改为:
pHandle = OpenProcess(&hFFF, False, pid)

就行了
2004-5-4 19:59
0
游客
登录 | 注册 方可回帖
返回
//