Windows 抑制应用程序不响应消息

Windows 抑制应用程序不响应消息,windows,delphi,Windows,Delphi,我正在windows Server 2008 R2中运行Delphi windows应用程序,它将启动对windows服务的请求以填充数据。执行此任务时,应用程序将因应用程序标题栏上的“无响应”消息而变得繁忙。此时,如果我们关闭应用程序,应用程序将终止并显示任何消息“应用程序未响应。如果您等待,程序可能会再次响应” 但在Windows server 2016中运行的应用程序在关闭应用程序时显示“应用程序未响应。如果您等待,程序可能会再次响应”。 有人能建议如何在不更改代码的情况下抑制此消息,并

我正在windows Server 2008 R2中运行Delphi windows应用程序,它将启动对windows服务的请求以填充数据。执行此任务时,应用程序将因应用程序标题栏上的“无响应”消息而变得繁忙。此时,如果我们关闭应用程序,应用程序将终止并显示任何消息“应用程序未响应。如果您等待,程序可能会再次响应”

但在Windows server 2016中运行的应用程序在关闭应用程序时显示“应用程序未响应。如果您等待,程序可能会再次响应”。

有人能建议如何在不更改代码的情况下抑制此消息,并允许用户在想要关闭应用程序时关闭应用程序吗


禁用窗口重影;代码不应包含在应用程序中。

您有两个主要选项:

  • 打电话。从抑制问题而不是解决问题的意义上说,这不是一个好的选择
  • 将长时间运行的任务移动到工作线程中,从而允许主线程为UI提供服务。这是最佳实践解决方案

  • 这就是线程技术被发明的原因。不要修复症状,而是修复根本原因。也就是说,将繁重的工作放到线程中,并确保可以中止工作。不幸的是,这是一个遗留应用程序,我们没有代码。到目前为止,该应用程序位于Windows Server 2008 R2中,现在我们已迁移到2016 Server。我正在寻找使应用程序行为与2008 server相同的任何服务器级别更改。请熟悉Windows消息传递系统。然后研究了多线程技术。然后您将了解到,如果没有代码,您想要做的事情是不可能的。这条消息是不言自明的——你的应用程序没有响应Windows(很可能它被困在执行一项大任务中),所以Windows会将这条消息扔到上面。不幸的是,这是一个遗留应用程序,我们没有代码。到目前为止,该应用程序位于Windows Server 2008 R2中,现在我们已迁移到2016 Server。我正在寻找使应用程序行为与2008服务器相同的任何服务器级别更改。此站点“堆栈溢出”用于解决编程问题。@D.VenkataNaresh据我所知,在编辑应用程序代码时不可能超越此mesage。@D.VenkataNaresh“我正在寻找任何使应用程序行为与2008 server相同的服务器级别更改“-没有这种选择。每个Windows版本中的每个应用程序都会遇到此问题,这与2008年和2016年的情况无关。如果应用程序没有对操作系统保持响应,操作系统会对此进行投诉,通常会以某种直观的方式让用户看到。如果您无法更新旧版应用程序的代码,请更换该应用程序,或者仅使用警告消息。这些是你的选择。