怎样知道我的程序是否运行在DELPHI?

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;
  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

laoli

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值