با سلام خدمت اساتید محترم
چگونه میتوان تشخیص داد برنامه دلفی از داخل IDE اجرا میشود یا خود EXE برنامه اجرا شده است؟
Printable View
با سلام خدمت اساتید محترم
چگونه میتوان تشخیص داد برنامه دلفی از داخل IDE اجرا میشود یا خود EXE برنامه اجرا شده است؟
از این تابع استفاده کنید:
function IsAppRUNNINGINDELPHI : boolean;
var
hKernelDll : THANDLE;
proc_IsDebuggerPresent : TProcIsDebuggerPresent;
useFINdWINdow : boolean;
proc : FARPROC;
begIN
useFINdWINdow := true;
if (WIN32Platform = VER_PLATFORM_WIN32_NT) then
begIN
// WINNt
try
hKernelDll := GetModuleHandle(kernel32);
if (hKernelDll = -1) then
hKernelDll := LoadLibrary(kernel32);
if (hKernelDll <> -1) then
begIN
proc := GetProcAddress(hKernelDll, 'IsDebuggerPresent');
if (proc <> nil) then
begIN
proc_IsDebuggerPresent := proc;
result := proc_IsDebuggerPresent;
useFINdWINdow := false;
end;
end;
except
end;
end;
if (UseFINdWINdow) then
begIN
if FINdWINdow('TAppBuilder', Nil) <> 0 Then
result := true
else
result := false;
end;
end;
مثال:
if IsAppRUNNINGINDELPHI then ShowMessage('Im running in Delphi');