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 不重启不注销不关explorer刷新注册表

Delphi 2009 的反射单元(objauto):

Delphi 中文大写日期转换函数

Delphi arp攻击代码

Delphi dbnavigator1 删除时弹出确认对话框

Delphi 简单的截图代码

Delphi validatename 过滤特殊字符

Delphi 递归获取窗口所有子窗口所以句柄

Delphi结合winrar生成自解压文件

Delphi 得到cxgrid筛选后的记录数

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



打赏

取消

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

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

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

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

评论

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