PDA

View Full Version : تشخیص اجرای برنامه از داخل IDE



omid_delphi2
شنبه 05 اردیبهشت 1383, 11:08 صبح
با سلام خدمت اساتید محترم
چگونه میتوان تشخیص داد برنامه دلفی از داخل IDE اجرا میشود یا خود EXE برنامه اجرا شده است؟

مهدی کرامتی
شنبه 05 اردیبهشت 1383, 11:26 صبح
از این تابع استفاده کنید:

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');