vdesktop.~dpr

来自「Virtual Desktop虚拟桌面很简单的实现」· ~DPR 代码 · 共 43 行

~DPR
43
字号
program VDESKTOP;

uses
  Forms, Messages, Windows, pzcProcessEX, Dialogs, SysUtils,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
const
  // 自定义一个消息,用来恢复窗口
  CM_RESTORE = WM_USER + $1000;
  APPNAME = '虚拟桌面'; // 应用程序名称
var
  RvHandle: hWnd; // 窗口句柄
  s: TGetAllProcess;
  i: integer;
  j: integer;
begin
  begin
    j := 0;
    s := pzcGetAllProcessInfo;
    for i := 0 to s.ProcessCount - 1 do
    begin
      if s.ProcessList[i].PathFileName = Application.ExeName then j := j + 1;
    end;
  end;
  if j > 1 then
  begin
    MessageBox(0, '程序" ' + APPNAME + '" 已经运行了。', '信息', MB_OK + MB_ICONINFORMATION + MB_SYSTEMMODAL);
    Exit;
  end;
  RvHandle := FindWindow(APPNAME, nil); // 查找窗口句柄
  if RvHandle > 0 then // 如果找到则发送自定义的消息并退出
  begin
    PostMessage(RvHandle, CM_RESTORE, 0, 0);
    Exit;
  end;
  Application.Initialize;
  Application.Title := '虚拟桌面';
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?