1

我对 C# 很陌生,但我学得很快。我已经看到了各种答案,但我不确定它们是否适合,或者我只是没有得到它们。

我有一个业务需求来编写 ac# 应用程序,该应用程序位于系统托盘中,并在 Internet Explorer 中执行特定操作时运行。这个动作(目前)是关于 Internet Explorer 窗口的打开。我需要该应用程序不断监视以查看此窗口是否打开,然后运行一些代码,例如关闭关于窗口并显示一个消息框。

我已经设法让系统托盘部分工作,我将如何监控窗口是否存在?

编辑回答评论中的一些问题:在工作中,我们使用仅在 IE 中运行的预订系统,我们正在寻找一种方法来自动化我们手动流程的一部分,为此我们认为我们可以拥有以下过程:进入预订,点击帮助>关于,系统托盘应用程序关闭窗口并运行一些代码来更新数据库。差不多就是这样。

我看过以下一些内容: 如何检查窗口是否已打开并关闭 c#:如何检查我的机器上是否打开了另一个应用程序窗口(即遍历所有打开的窗口)?

我想我明白我必须查看正在运行的进程并检查相关的程序属性以查看它是否具有正确的窗口名称?我确定我可以让它工作(最终)但是它是等待那个窗口打开我卡住的部分,C# 有等待还是我必须编写一个函数来不断检查窗口是否打开?

编辑

我已经接受了@Adrian 的回答,因为它看起来确实想要我想要的;然而,在阅读了所有评论后,我去找我的经理,我们讨论了这个问题。现在,我们将通过右键菜单中的文本框让用户将预订号输入到 C# 应用程序中。谢谢大家。

4

2 回答 2

0

您可能想使用 FindWindowEx API 调用

有关示例代码,请参见此处:

http://www.pinvoke.net/default.aspx/user32/findwindowex.html

然后 SendMessage 关闭窗口。

http://www.pinvoke.net/default.aspx/user32/SendMessage.html

但是出于安全原因,您将仅限于可以从其他应用程序捕获/使用的事件。除非应用程序明确允许此类交互。

于 2012-05-08T08:13:14.890 回答
0

您可以做的是使用 AutoIt。它是一个免费的桌面自动化工具,还提供了一个用于集成的 .NET 类库。有了这个,您可以检查并等待某个窗口打开相当容易。

您可以从这里下载此工具: https ://www.autoitscript.com

于 2015-11-24T00:00:34.163 回答