Delphi 如何识别应用程序没有响应


本文整理自网络,侵删。

 
 unit Unit1;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls;
 
 type
   TForm1 = class(TForm)
     Button1: TButton;
     procedure Button1Click(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end;
 
 var
   Form1: TForm1;
 
 implementation
 
 {$R *.dfm}
 
 function AppFrozen(H: HWND) : Boolean;
 var
   dwResult: DWord;
 const
   timeout = 3000; // ms
 begin
   AppFrozen := SendMessageTimeout(H, WM_NULL, 0, 0,
                                   SMTO_ABORTIFHUNG or SMTO_BLOCK,
                                   timeout, dwResult) <> 0
 end;
 
 
 
 procedure TForm1.Button1Click(Sender: TObject);
 var
   H: HWND;
 
 begin
 
   H := FindWindow(nil, 'Name of Application');
   if H<>0 then
     if AppFrozen(H) then
       ShowMessage('This Application is Frozen!');
 
 
 end;
 
 end.

相关阅读 >>

Delphi 改变进程优先级

Delphi xe3中如何crc验证函数?

Delphi 网上获取北京时间firedac 下的 sqlite [3] - 获取数据库的基本信息

Delphi 安卓获得设备 id

Delphi 10.4.1 edgebrowser 模拟操作网页方法

Delphi sysutils.strcopy、sysutils.strecopy

Delphi firemonkey在画布上绘制 imagelist图像

Delphi与汇编杂谈

Delphi操作usb摄像头类

Delphi 根据ip获取局域网mac

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...