首页
社区
课程
招聘
OpenProcess 返回值为-1
发表于: 2014-2-23 14:34 6232

OpenProcess 返回值为-1

2014-2-23 14:34
6232
HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcessId);
把这代码放到按钮中在QQ正在登录或者输密码时点按钮返回值是-1。
把这代码放到按钮中在QQ登录成功后再点按钮返回值是一个正常的数。
把这代码放到按钮中在QQ如果没有打开时返回值就是0。

我是想判断QQ是否登录成功。我设置一个TIMER,每过一秒钟我就打开一次。再判断它。如果返回值不是-1和0说明登录成功。但是我在timer中就算QQ登录成功返回值也总是-1.这是为什么????

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
因为QQ做了驱动 保护啊。。。。
2014-2-23 14:38
0
雪    币: 20
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
PROCESSENTRY32 pe;
        // 创建快照句柄
        HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
        // 先搜索系统中第一个进程的信息
        Process32First(hSnapshot,&pe);
        // 下面对系统中的所有进程进行枚举。
        do
        {

                if(strlwr(pe.szExeFile)=="qq.exe") //判断当前进程是否有qq.exe
                {

                        HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe.th32ProcessID);//返回句柄,在登录窗口时返回的句柄是-1,0就是没有得到。如果得到就是别的数。
                        if ((DWORD)hProcess !=0 && (DWORD)hProcess !=-1)
                        {
                                MessageBox("QQ登录成功!");

                        }
                }
               
        }while (Process32Next(hSnapshot, &pe));
        CloseHandle(hSnapshot);

这是代码。
2014-2-23 14:42
0
雪    币: 20
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
那代码加到按钮中怎么又可以呢?
2014-2-23 14:43
0
雪    币: 233
活跃值: (10)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
qq有驱动保护吗?Win7 x64上也有?我怎么没发现啊
2014-2-23 14:48
0
雪    币: 341
活跃值: (85)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
6
有进程名不就够了么?一定打开么?
2014-2-23 14:48
0
雪    币: 20
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
是的。一定要判断他是不是登录成功。
2014-2-23 14:51
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
代码加到按钮中是怎么个意思。
2014-2-23 14:52
0
雪    币: 20
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
把这个代码放到按钮中,在QQ正在登录或输入QQ密码时按钮执行这个代码返回值是-1,等QQ登录成功按钮这个按钮那返回值就是正常。我要软件自动判断QQ是不是登录成功。所以只能是加到timer中。但是加到timer中不管是登录成功还是正在登录都返回-1。为什么登录成功后返回不是正常的返回值。

如果说我把这些代码写成一个函数。在timer中调用不成。在按钮中调用是正常。不知道我说的够不够明白。

所以我也不知道这是为什么。问大家了咯………………

大家也可以测试一下看是不是这样。
2014-2-23 14:56
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
判断登录成功可以查找特定窗口来做,也基本上准确
2014-2-23 18:15
0
雪    币: 20
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
如何查找?QQ登录窗口和登录后的窗口标题是一样。无法查找。
2014-2-24 10:09
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
自己拿SPY++去看吧,有个子窗口,很多QQ粘虫就是这样干的
2014-2-24 11:29
0
雪    币: 1042
活跃值: (500)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
最新版的QQ在登陆的时候有两个进程,亲.
2014-2-26 18:55
0
雪    币: 4340
活跃值: (3850)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
系统函数被QQ的驱动hook住了吧
2014-2-26 19:04
0
游客
登录 | 注册 方可回帖
返回
//