用api激活另一个程序里被禁用的按钮(50分)

  • 主题发起人 主题发起人 coolbaby
  • 开始时间 开始时间
C

coolbaby

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么做 ?
 
一定要程序实现吗?<br>不用程序实现:拿eXeScope把button的属性改一下就行。
 
首先得到按钮handle,然后<br>BOOL EnableWindow(<br><br>&nbsp; &nbsp; HWND hWnd, // handle to window<br>&nbsp; &nbsp; BOOL bEnable // flag for enabling or disabling input<br>&nbsp; &nbsp;);
 
按照. 一个过客的思想,我编写了一个好程序,(没有实验)。<br>枚举所有窗口,发送设置Enable,呵呵,太霸道一些了,不知道是否游泳。<br>function EnumChildWindowsProc(hwnd: Integer; lparam: Longint): Boolean; stdcall;<br>begin<br>&nbsp; EnableWindow(hwnd,True);<br>&nbsp; InvalidateRgn(hwnd, 0, True);<br>&nbsp; Result := True; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //终止循环<br>end;<br><br>procedure Call_Btn_Enable;<br>var<br>&nbsp; Window_Handle: Integer;<br>begin<br>&nbsp; Window_Handle := GetWindow(Application.Handle, GW_HWNDFIRST);<br>&nbsp; while Window_Handle &lt;&gt; 0 do<br>&nbsp; begin<br>&nbsp; &nbsp; if Window_Handle &lt;&gt; 0 then<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; EnumChildWindows(Window_Handle, @EnumChildWindowsProc, 0);<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; Window_Handle := GetWindow(Window_Handle, GW_HWNDNEXT);<br>&nbsp; end;<br>end;<br>
 
sendmessage(buttonhandle,BM_CLICK,0,0);
 
haha,有意思,这办法都有<br>不过我早就不用封菜单和按钮的办法来设置权限了,我把权限判断写在里面[^][^]
 
就是以后还得防着这招。哈哈
 
应该根据XX来设置按钮状态,而不是根据按钮状态来设置XX
 
我也真是的<br>明明知道只用一个api函数就行<br>那天竟也发了个帖子,结了吧
 
多人接受答案了。
 
后退
顶部