WEB开发网
开发学院软件开发VC Windows按键突破专家的原理 阅读

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下通过编译。

上一页  1 2 3 

Tags:Windows 按键 突破

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接