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 xe 移动平台 showmodal 范例

Delphi 辨析 field、fielddef、fields、fielddefs、fieldlist、fielddeflist

Delphi unicode转汉字 ,支持自动过滤非 unicode编码

Delphi里实现文件格式关联应用程序的功能

Delphi 实现窗体随着鼠标移动

Delphi 创建应用程序的快捷方式

dll 的静态调用实例代码

Delphi pi 精确计算返回圆周率

Delphi 只用一条语句就能使tbitmap反色

Delphi 中文urlencode的简单办法

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



打赏

取消

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

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

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

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

评论

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