prjmisc.pas
来自「=== === === MiniHex 1.61 源程序说明 =」· PAS 代码 · 共 72 行
PAS
72 行
unit PrjMisc;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Global;
procedure CheckPrevInstance;
procedure ShowHelp;
function GetBookmarkFileName: string;
implementation
uses Misc, MainFrm, OptionFrm, SysOptMgr;
procedure CheckPrevInstance;
var
Handle, Ret: HWND;
IniFileName: string;
Value: array[0..255] of Char;
I: Integer;
Atom: TAtom;
begin
//在程序初始化之前,不能使用VCL,故此处只能调用API读入INI设置。
IniFileName := ExtractFilePath(Application.ExeName) + OptionsFileName;
GetPrivateProfileString('Options', SOptAllowMultiInst, 'False',
Value, SizeOf(Value), PChar(IniFileName));
if StrIComp(PChar(@Value[0]), 'True') = 0 then Exit;
CreateMutex(nil, False, SSoftName);
//如果之前已经运行了一个实例
if GetLastError = ERROR_ALREADY_EXISTS then
begin
Handle := GetDesktopWindow;
Handle := GetWindow(Handle, GW_CHILD);
while IsWindow(Handle) do
begin
//判断此窗口属性标志
Ret := GetProp(Handle, PChar(SSoftName));
if Ret = Handle then
begin
SetForeGroundWindow(Handle);
for I := 1 to ParamCount do
begin
Atom := GlobalAddAtom(PChar(ParamStr(I)));
SendMessage(Handle, WM_OPENFILE, 0, Atom);
GlobalDeleteAtom(Atom);
end;
Break;
end;
//转到窗口列表中下一个窗口.
Handle := GetWindow(Handle, GW_HWNDNEXT);
end;
Halt;
end;
end;
procedure ShowHelp;
var
FileName: string;
begin
FileName := ExtractFilePath(Application.ExeName) + 'Readme.txt';
ExecuteFile(FileName, '', '', SW_SHOWDEFAULT);
end;
function GetBookmarkFileName: string;
begin
Result := ExtractFilePath(Application.ExeName) + 'Bookmark.ini';
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?