unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type
TForm1 = class(TForm) Button1: TButton; Timer1: TTimer; Edit1: TEdit; Label1: TLabel; Label3: TLabel; Button2: TButton; Label2: TLabel; Label4: TLabel; Button3: TButton; Button4: TButton; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } hotkeyid :integer; procedure WMhotkeyhandle(var msg:Tmessage); message wm_hotkey; //响应敏感键按键消息 public { Public declarations }
end; var
Form1: TForm1; implementation
{$R *.dfm}
procedure TForm1.Wmhotkeyhandle (var msg:Tmessage); begin if (msg.LParamHi=$41) and (msg.lparamLo=MOD_CONTROL or mod_Alt) then begin msg.Result:=1; //该消息已经处理 Form1.Show; //把窗口现形 end; end; procedure TForm1.Button1Click(Sender: TObject) ;
var i:integer; begin Timer1.Enabled:=true; timer1.Interval:=StrToInt(Edit1.Text)*3000; Form1.Hide; end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin keybd_event(18, MapVirtualKey(18, 0 ), 0 , 0 ); //alt
keybd_event(9, MapVirtualKey(9, 0 ), 0 , 0 ); //tab keybd_event(9, MapVirtualKey(9, 0 ), KEYEVENTF_KEYUP , 0 ); keybd_event(18, MapVirtualKey(18, 0 ), KEYEVENTF_KEYUP , 0 ); end;
procedure TForm1.Button2Click(Sender: TObject);
begin Timer1.Enabled:=false; if( MessageBox(form1.Handle,'您确定要退出吗?','系统提示',MB_OKCANCEL)=IDOK)then begin Form1.Close; end else begin Timer1.Enabled:=true; end; end; procedure TForm1.FormCreate(Sender: TObject); begin Form1.Caption:='窗口定时切换器' ; hotkeyid:=GlobalAddAtom(pchar ('UserDefineHotKey'))-$C000; //减去$C000是为了保证取值范围的限制 registerhotkey(handle,hotkeyid, MOD_CONTROL or mod_Alt ,$41); //敏感键为ctrl+Alt+A end; procedure TForm1.Button3Click(Sender: TObject);
begin MessageBox(form1.Handle,'!哈哈','系统提示',MB_OKCANCEL) ; end; procedure TForm1.Button4Click(Sender: TObject);
begin Timer1.Enabled:=false; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin unregisterhotkey(handle,hotkeyid); DeleteAtom(HotKeyID); end;
end.
|
|