分享

delphi灰色按钮激活

 独孤求财 2012-03-20

delphi灰色按钮激活

时间:2011-5-26来源:yang 作者: peng点击: 30次

灰色按钮激活实现

下面讲讲激活windows灰色东东(比如不可用的按钮文本等)的原理
本例中我们需要用到的API共有四个:
GetForegroundWindow,EnumChildWindows,IsWindowEnabled,EnableWindow
下面我一一写出这几个API的意义
GetForegroundWindow   //获得前台窗口的句柄。这里的“前台窗口”是指前台应用程序的活动窗口
EnumChildWindows   //为指定的父窗口枚举子窗口(即枚举控件窗口,比如按钮文本等)
IsWindowEnabled   //判断窗口是否处于活动状态.
EnableWindow    //在指定的窗口里允许或禁止所有鼠标及键盘输入
好了有这几个API就足够写出这个小程序了,下面是代码:

function EnumChildProc(Hwnd:Integer;TF:TForm1):Boolean;stdcall;    //查找子窗口并进行判断的回调函数
begin
Result:=True;    //设定为True才会再找下一个
if IsWindowEnabled(Hwnd)=False then    //判断是否有enable的东东
   begin
      EnableWindow(Hwnd,True);      //调用激活
   end;
end;
procedure TForm1.Button1Click(Sender: TObject);   //启用Timer开始遍历激活
begin
    Timer1.Enabled:=True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
    ButtonHandle:Hwnd;
begin
    ButtonHandle:=GetForeGroundWindow;
    EnumChildWindows(ButtonHandle,@EnumChildProc,0);
end;

procedure TForm1.Button2Click(Sender: TObject); //关闭Timer停止激活
begin
    Timer1.Enabled:=False;
end;

end.
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多