📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, AppEvnts, CoolTrayIcon;
type
TForm1 = class(TForm)
Memo1: TMemo;
ApplicationEvents1: TApplicationEvents;
TrayIcon_Minisized: TCoolTrayIcon;
procedure FormCreate(Sender: TObject);
procedure ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
procedure TrayIcon_MinisizedDblClick(Sender: TObject);
private
{ Private declarations }
procedure WM_DETECTERECORDS(var Message: TMessage); message WM_COPYDATA;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses ShellAPI;
{$R *.dfm}
procedure TForm1.WM_DETECTERECORDS(var Message: TMessage);
type
PCOPYDATASTRUCT = ^COPYDATASTRUCT;
var
pcds: PCOPYDATASTRUCT;
s: string;
begin
pcds := PCOPYDATASTRUCT(Message.lParam);
s := string(PChar(pcds.lpData));
Memo1.Lines.Add(s);
//得到参数后,可以干自己的事情了
end;
procedure TForm1.FormCreate(Sender: TObject);
var
I: integer;
begin
Memo1.Lines.Clear;
if ParamCount = 0 then
Memo1.Lines.Add('没有参数')
else
begin
Memo1.Lines.Add('程序名:' + ParamStr(0));
for I := 1 to ParamCount do
Memo1.Lines.Add(ParamStr(I)); //相应参数内容...
//得到参数后,可以干自己的事情了
end;
end;
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin //防止激活窗口后,最小化按钮无法使用
if Msg.hwnd = Form1.Handle then
begin
//消息161 是在标题栏按下鼠标 参数8 是在标题栏的最小化按钮上按下鼠标
if (Msg.message = 161) and (msg.wParam = 8) then
begin
//SendMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0); 无法再次激活
Form1.WindowState := wsMinimized;
end;
end;
end;
procedure TForm1.TrayIcon_MinisizedDblClick(Sender: TObject);
begin
TrayIcon_Minisized.ShowMainForm;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -