82 lines
1.9 KiB
Plaintext
82 lines
1.9 KiB
Plaintext
{*******************************************************}
|
|
{ }
|
|
{ Tocsg.DllEntry }
|
|
{ }
|
|
{ Copyright (C) 2022 kku }
|
|
{ }
|
|
{*******************************************************}
|
|
|
|
unit Tocsg.DllEntry;
|
|
|
|
interface
|
|
|
|
uses
|
|
Tocsg.Obj, System.SysUtils, Winapi.Windows;
|
|
|
|
type
|
|
TTgDllEntry = class(TTgObject)
|
|
private
|
|
dwPID_: DWORD;
|
|
sDllPath_,
|
|
sDllName_,
|
|
sModulePath_,
|
|
sModuleName_: String;
|
|
public
|
|
Constructor Create;
|
|
Destructor Destroy; override;
|
|
|
|
property PID: DWORD read dwPID_;
|
|
property ModulePath: String read sModulePath_;
|
|
property ModuleName: String read sModuleName_;
|
|
property DllPath: String read sDllPath_;
|
|
property DllName: String read sDllName_;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
Tocsg.KERNEL32;
|
|
|
|
{ TTgDllEntry }
|
|
|
|
Constructor TTgDllEntry.Create;
|
|
|
|
procedure InitInformation;
|
|
var
|
|
sPath: array [0..512] of Char;
|
|
hm: HMODULE;
|
|
begin
|
|
dwPID_ := GetCurrentProcessId;
|
|
GetModuleFileName(0, sPath, 512);
|
|
sModulePath_ := sPath;
|
|
sModuleName_ := ExtractFileName(sPath);
|
|
|
|
sDllPath_ := '';
|
|
sDllName_ := '';
|
|
|
|
// 추가 16_0112 16:14:56 kku
|
|
if GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, 'InstallWindowActiveHook', @hm) and (hm <> 0) then
|
|
begin
|
|
sDllPath_ := GetModuleName(hm);
|
|
if sDllPath_ <> '' then
|
|
begin
|
|
sDllName_ := ExtractFileName(sDllPath_);
|
|
sDllPath_ := ExtractFilePath(sDllPath_);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
begin
|
|
Inherited Create;
|
|
InitInformation;
|
|
_Trace('[%s] DllEntry::%s.Create()', [ClassName, ModuleName]);
|
|
end;
|
|
|
|
Destructor TTgDllEntry.Destroy;
|
|
begin
|
|
_Trace('[%s] DllEntry::%s.Destroy()', [ClassName, ModuleName]);
|
|
Inherited;
|
|
end;
|
|
|
|
end.
|