我们在运行某些程序的时候,发现按钮置灰了,比如购买版权或者输入序列号才能够获得访问权限。某个按钮才允许点击。
其实所有的这些东西都是 别的人或者公司利用一些编程语言调用windows的函数,实现的。所以如果我们也能调用windows的函数,那么我们就能够执行一些按钮或者某些东西背后的函数。
自己的mfc还暂时 用不了,不过 可以 试试这个。
调出这个界面,看到有一个置灰的设置按钮。我们可以试着调用这个后面的函数。
/*如何调出来?【在win7环境下】
打开控制面板
点击鼠标。*/
然后利用vs的工具中的spy++ x64。
进入查找窗口。携蔽
拖住这个到刚刚鼠标的那个置灰的按钮上面。就可以得到一个句柄。
句柄【在我理解,就是一个话把子,怎么解释,就是,别人说一件事儿,你得顺着往下说才能把话接下来,然后完成你想说的东西。在程序里面,执行到这里,有这样一个句柄,允许我们说话了,我们就从这一点开始,顺着往下说,往往就能得到我们想要的结果】
所以得到了句柄之后。我们可以新建一个工程。
#include <windows.h>
int main(){
SendMessage(0x001607E6,WM_LBUTTONDOWN,0,0)
SendMessage(0x001607E6,WM_LBUTTONUP,0,0)
return 0
}
//在HWND的第一个参数里面输入刚刚的句柄。
//猜测 第二个参数 是 WindowManager_LeftButtonDown,就是窗口管理器左键按钮点下。
//然后左键按钮d起。
就强核隐敬制的往刚刚不能执行的函数里面发送了一个信息。前面的引文介绍说,这就是调用了windows底层的一些函数,如果按钮可以点击,则鼠标点击,按钮按下,当需要注册的时候,或者需要序列号的时候我们并没有,就不能点击。但是当我们给他发送一条消息以后,是不是问题就解决了。
有独立键盘和距阵键盘闭袜的 独立键盘的很简单我就不写了 距阵的我给你写一个//键盘扫描
uchar Keys_Scan()
{
uchar sCode,kCode,i,k
//低4 位置0,放入4 行
P1=0xf0
/咐渣/若高轿简激4 位出现0,则有键按下
if((P1&0xf0)!=0xf0)
{
DelayMS(2)
if((P1&0xf0)!=0xf0)
{
sCode=0xfe//行扫描码初值
for(k=0k<4k++) //对4 行分别进行扫描
{
P1=sCode
if((P1&0xf0)!=0xf0)
{
kCode=~P1
for(i=0i<16i++) //查表得到按键序号并返回
if(kCode==KeyCodeTable[i])
return(i)
}
else
sCode=_crol_(sCode,1)
}
}
}
return(-1)
如果该程序的频率是错误的,“TH0 = 0XF6 / /初始值灶吵信的246句话0xf6向上调整,增加值将提高精度。
/ **************************
MCU:S52
水晶:24M
**************************** /
#包括<reg52.h>
SBIT输出= P1 ^ 0 / / P1.0引脚隐轮输出100K
或无效timer0_init(0)
{
TMOD = 0X02 / /定时器0模式2
TH0 = 0XF6 / /初始值246
ET0 = 1 / /开中断
EA = 1 / /开总中断
TR0 = 1 / /定时器0
}
无效的主要()
{
timer0_init()
而(1)
}
:碰渣无效timer_isvof()中断1
{
输出=!输出/ /中断翻转
}
此外,车主在集团的产品,买的,便宜的保证
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)