用vc++穷举windows应用程序密码(上)
2009-04-09 20:04:20 来源:WEB开发网核心提示: 本文仅仅简要叙述以下互斥信号量,其他信号量不在本文谈论之列,用vc++穷举windows应用程序密码(上)(5),请用户自行参考《win 32 编程指南》或 MSDN . 互斥信号量用于串行某一资源的使用,即任一时刻仅允许至多一个线程访问某一资源,名字大小写敏感, 若此值为NULL ,一
本文仅仅简要叙述以下互斥信号量,其他信号量不在本文谈论之列,请用户自行参考《win 32 编程指南》或 MSDN .
互斥信号量用于串行某一资源的使用,即任一时刻仅允许至多一个线程访问某一资源,一个互斥信号灯只能为一个线程所拥有,任何试图要求互斥标志的其他线程都将被锁住,直到互斥标志被释放为止。
在程序采用了多个线程对窗口进行枚举,一旦某线程发现密码窗口或出错要求重试窗口,该线程便首先获得互斥信号量,该线程具有枚举子窗口的权利,能够向密码编辑框输入文本,发送键盘鼠标消息,其他线程因无法获得互斥标志处于睡眠状态。这正如列车上的卫生间,一次只能进一个人,进去后先关门,其他人被挡在大门之外,直到里面的人出来,别人方可进去。
CreateMutex 函数用于创建一个命名的或无命名的互斥量对象。 HANDLE CreateMutex(
LPSECURITY_ATTRIBUTES lpMutexAttributes,
// 安全属性指针
BOOL bInitialOwner, // 最初的拥有标志
LPCTSTR lpName // 指向互斥量的对象名
);
参数:
lpMutexAttributes
指向一个安全属性结构,决定返回句柄能否被子进程继承并拥有,如果此值为NULL,那么句柄无法继承拥有。
bInitialOwner
指示互斥对象的最初拥有者,此值为真,请求互斥量的线程可以直接获得互斥量的拥有权。否则互斥量不被拥有。
lpName
指向一个以0结尾的字符串, 来表示互斥对象的名字,名字限于MAX_PATH 个字符串,可以包含除 以外的任何字符,名字大小写敏感。
若此值为NULL ,互斥对象没有名字。
更多精彩
赞助商链接