我可以通过ajax关闭显示器并获得响应吗?

时间:2011-08-10 21:56:13

标签: c# ajax sendmessage

我正在开发一个可以在自助服务终端上运行并通过触摸屏界面使用的Web应用程序。我们想要从管理页面关闭屏幕,因此使用Windows电源管理不是一个选项,因为必须明确关闭显示器。

根据this question中发布的建议,我能够向控制器发出AJAX呼叫并关闭显示器。但是,我的AJAX请求永远不会收到响应,因为SendMessage()之后的任何代码都没有执行,我不确定为什么。这是冒险超越我的能力C#,所以它可能是一些我不明白的简单。 Firebug显示请求挂起。我尝试单步执行,但一旦调用了SendMessage(),就不会发生任何其他事情。我也尝试打开显示器(当它打开时),看看是否可以单步执行,但结果是一样的:在SendMessage()之后,没有其他任何执行。

那么可以通过AJAX进行并收到回复吗?

1 个答案:

答案 0 :(得分:3)

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

  

SendMessage() - 将指定的消息发送到一个或多个窗口,调用指定窗口的窗口过程,直到窗口过程处理完消息后才返回。    PostMessage() - 在与创建指定窗口的线程关联的消息队列中发布消息,并在不等待线程处理消息的情况下返回。

我认为如果你给PostMessage(...)传递相同的参数,你可能会得到你正在寻找的行为。