Windows按键突破专家的原理
2007-03-15 21:46:08 来源:WEB开发网核心提示: 所以while(1){GetRealWindow(&s);::EnableWindow(s,1);Sleep(100);}但是,这样的话,Windows按键突破专家的原理(3),问题又来了,就是让程序休息100毫秒,windows sdk有许多有用的函数,建议用vc++的朋友都应该去下载,
所以
while(1)
{
GetRealWindow(&s);
::EnableWindow(s,1);
Sleep(100);
}
但是,这样的话,问题又来了,就是让程序休息100毫秒,这个程序还是会把所以的cpu都占用完的,总不能因为这一个程序,而把资源的耗尽了,这是谁都不愿意看到的,这时,就必须用到多线程了,对于多线程技术,很多文章都有介绍了的.我就不多说那么多了。
DWORD WINAPI run(LPVOID l)
{
while(k==1)
{
GetRealWindow(&s);
::EnableWindow(s,1);
Sleep(100);
}
ExitThread(dwThreadID);
return 1;
}
先把实现按键突破的语句放在一个新的函数里。里面的这个k,是个全句变量,先在“资源”中添加一个Button按键(只是为了说明问题,所以程序做得很简单)。
void CJiandanwindowDlg::OnButton1()
{
k=1;
CreateThread(NULL,0,run,(LPVOID)i,0,&dwThreadID);
}
当按了一下Button时,就可以开始实现按键突破的功能了,仔细看一下,会发现这个程序和window按键突破专家有点不同,因为window按键突破专家在鼠标指向一个窗口时,就会将那个窗口下所有被禁止的控件都变成可用,而本程序,是鼠标指去哪个不可用的控件,那个控件就会编程可用,其他控件不受影响,如果想和window按键突破专家一样的功能,其实也很简单,只要改一下代码就可以了,读者们自己想想吧。
补充一点:这个程序不能直接在vc++下运行,因为源代码将编译不了,必须去微软的老窝去下载最新的windows sdk,安装以后,把所有的.h和.lib拷贝到vc++的相关目录里。windows sdk有许多有用的函数,建议用vc++的朋友都应该去下载。
程序在winxp、vc++6.0下通过编译。
更多精彩
赞助商链接