用vc++穷举windows应用程序密码(上)
2009-04-09 20:04:20 来源:WEB开发网返回值:
函数执行成功,返回指向互斥对象的句柄。
WaitForSingleObject函数只有在下列情况发生时才返回,否则处于睡眠状态。
1. 指定的对象处于信号状态,
2. 等待事件超时。
DWORD WaitForSingleObject(
HANDLE hHandle, // 等待对象的句柄
DWORD dwMilliseconds // 超时的毫秒数
);
参数:
hHandle
等待对象标识,可以采用上面CreateMutex返回的句柄
dwMilliseconds
指定的超时的毫秒数,若为INFINITE,超时不限
返回值:
执行成功,返回值预示着导致函数返回的事件发生。
注释:
WaitForSingleObject函数首先检查指定的对象当前状态,如果当前对象处于无信号状态,调用函数的线程将进入有效等待状态,在信号来临或超时发生之前,在等待信号的过程中线程消耗非常有限的处理器时间。
在返回之前,等待函数会修改某些同步对象的状态。修改仅适用于那些会导致函数返回的对象。对互斥量对象,互斥量有信号时,它不为任何线程所拥有,用线程的等待函数会获得互斥量的拥有权,一旦得到互斥量的拥有权,它就会修改互斥量为无信号状态。
枚举操作完成后,线程要调用ReleaseMutex函数以便释放互斥量的拥有权,从而使其他没有得到响应的线程唤醒。 BOOL ReleaseMutex(
HANDLE hMutex // handle of mutex object
);
◆窗口枚举
EnumWindows 函数通过借助于应用程序定义的回调函数传递每个窗口句柄枚举所有顶层的屏幕窗口。直到最后一个顶层窗口被枚举或者回调函数返回false ,EnumWindows 函数才会退出停止枚举过程。
更多精彩
赞助商链接