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将字符串转换成utf8编码的函数

Delphi xe6开发的android应用实现在线升级完成后自动安装apk代码

Delphi idhttp封装得post get函数

Delphi writeln 写入一行文本

Delphi判断字符串中是否包含汉字,并返回汉字位置

Delphi批量删除同类文件(带通配符)

Delphi程序版本信息设置说明

Delphi 莫名奇妙的错误 Delphi is not a valid integer value

Delphi firedac 下的 sqlite [12] - 备忘录

Delphi 类型映射及类型转换

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



打赏

取消

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

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

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

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

评论

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