加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

切换指定窗口到最前并获得焦点[SwitchToThisWindow]

(2008-11-22 17:45:31)
标签:

it


要实现“切换指定窗口到最前并获得焦点”,很简单,我们只需一个函数就OK了,那就是SwitchToThisWindow。

SwitchToThisWindow是从user32.dll导出的,其原形为:

procedure SwitchToThisWindow(
hWnd:Thandle;    //窗体句柄
      fAltTab:boolean //设为true相当于按ALT+TAB切换到指定窗口,至于为false是效果自己看吧,偶不会说了
      );

具体实例:
//静态加载SwitchToThisWindow
procedure SwitchToThisWindow(hWnd:Thandle;fAltTab:boolean);stdcall;external 'User32.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
h:thandle;
begin
h:=findwindow(nil,'test');
SwitchToThisWindow(h,true);
end;
是不是很简单。

整个代码
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  procedure SwitchToThisWindow(hWnd:Thandle;fAltTab:boolean);stdcall;external 'User32.dll';
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   H:thandle;
begin
   H:=findwindow(nil,'计算器'); //提前条件cacl.exe(即计算器)文件必须先运行起来.否则无法成功。
   SwitchToThisWindow(h,true);
end;

end.

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有