我正在使用将在信息亭上运行并通过触摸屏界面使用的Web应用程序。我们想要从管理页面关闭屏幕,因此不能选择使用Windows电源管理,因为必须明确地关闭监视器。

按照this question中发布的建议,我能够对控制器进行AJAX调用并关闭监视器。但是,我的AJAX请求从没有收到响应,因为未执行SendMessage()之后的任何代码,而且我不确定原因。这超出了我使用C#的能力,因此可能是我不明白的简单事情。 Firebug显示请求挂起。我尝试逐步执行,但是一旦调用SendMessage(),就什么也没有发生。我也尝试打开监视器(在它打开的情况下)以查看是否可以通过,但结果是相同的:在SendMessage()之后,没有其他执行。

因此可以通过AJAX进行操作并接收响应吗?

最佳答案

我假设您遵循的是使用SendMessage(...)方法的代码。如果您阅读了该问题所链接到的文章的底部(http://www.codeproject.com/KB/cs/Monitor_management_guide.aspx),它将讨论几种类似方法之间的行为差​​异:


  SendMessage()–将指定的消息发送到一个或多个窗口,调用指定窗口的窗口过程,直到该窗口过程处理完该消息后才返回。
  PostMessage()–在与创建指定窗口的线程关联的消息队列中发布消息,然后返回消息,而无需等待线程处理消息。


我认为,如果您调用PostMessage(...)传递相同的参数,则可能会得到所需的行为。

关于c# - 我可以通过ajax关闭监视器并得到响应吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7018359/

10-13 06:59