身陷炼狱火 心翔涅槃鸟

                        火鸟李国平网志专栏

原创 一个设置任意窗口透明度的命令行Delphi程序收藏

必须是在Windows2000以下的系统才支持SetLayeredWindowAttributes这个API,原理就是先找到窗口句柄,然后设置窗口属性

program opacity;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Windows;

var
handle,AStyle:integer;

begin
  try
    if ParamCount<2 then
    begin
      Writeln('parameter must');
      exit;
    end;
    handle:=findwindow(nil,pchar(ParamStr(1)));//目前是找窗口的Text,也可以是找ClassName
    AStyle := GetWindowLong(Handle, GWL_EXSTYLE);
    SetWindowLong(Handle, GWL_EXSTYLE, AStyle or WS_EX_LAYERED);
    if SetLayeredWindowAttributes(Handle, 0, strtoint(ParamStr(2)),LWA_ALPHA) then
        Writeln(ParamStr(1)+' update successed to '+ParamStr(2))
      else
        Writeln('Opacity update failed');
    except
      Writeln('parameter error');
    end;
end. 

发表于 @ 2007年02月15日 14:01:00|评论(loading...)

新一篇: 转贴:网友windy.杜^ 影音之实现中英文字幕之我的解决方案  | 旧一篇: 让你的Winform应用在运行时可自由拖放控件位置

Csdn Blog version 3.1a
Copyright © 火鸟