怎样知道我的程序是否运行在DELPHI? (转)[@more@]function IsAppRunningIn
Delphi : boolean;
var
hKernelDll : THANDLE;
proc_IsDe buggerPresent : TProcIsDebuggerPresent;
useFindWindow : boolean;
proc : F ARPROC;
begin
useFindWindow := true;
if ( win32Platfo RM = 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;
var
hKernelDll : THANDLE;
proc_IsDe buggerPresent : TProcIsDebuggerPresent;
useFindWindow : boolean;
proc : F ARPROC;
begin
useFindWindow := true;
if ( win32Platfo RM = 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;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-990395/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10752043/viewspace-990395/