网上对于屏蔽灰色按钮的程序很多,大概办法无非是enumchildwindows加enablewindow这两个api的结合,下面我就来说说怎么防止自己的灰色按钮被破解.代码很简单,截获wm_enable消息,注意这个消息是enablewindow执行过程中发出的,所以只是简单的return 0是不行的,也就是说当我们的按钮状态被改变了,这个消息才会被发出,那该怎么办了,呵呵,很简单,看代码:
LRESULT CALLBACK newwindow(HWND h,UINT m,WPARAM w,LPARAM l){
if(m==WM_ENABLE){
return EnableWindow(h,0);
}
return ::CallWindowProcA((WNDPROC)old,h,m,w,l);
}
呵呵,大致代码是这样,说白了还是窗口子类化,在enablewindow函数返回时返回EnableWindow(h,0);的返回值就行了.