【问题标题】:Intercept Opening Window - C#拦截打开窗口 - C#
【发布时间】:2012-10-24 22:56:01
【问题描述】:

是否有某种方法可以监视/拦截 Windows 中的窗口打开,然后阻止该窗口打开?这适用于已经在运行的应用程序,我不想停止该进程,只需关闭它产生的弹出窗口即可。

更新

  1. 进程已在运行(例如,它在任务管理器中)但没有可见窗口。
  2. 在某个随机时间,该进程会弹出一个窗口
  3. 我手动关闭窗口(单击“确定”)。
  4. 此时进程继续运行,稍后会再次弹出一个窗口(重复这些步骤)。

我想自动化第 3 步,我必须手动关闭弹出窗口,方法是拦截打开和关闭它或隐藏它或从一开始就不让它打开。我不想通过轮询打开的窗口来做到这一点。我想接收某个窗口即将打开的事件。

我不控制这个其他应用程序,所以我无法更改它。而且我不想杀死进程本身。

【问题讨论】:

  • 从开幕式开始?也许你可以检测并关闭它。除非应用程序写得很糟糕,或者是为了应付你这样弄乱它而编写的,否则它很容易崩溃。
  • 所以您正在尝试检测应用程序是否已经在运行,因此不会加载第二个副本?
  • 更新问题。很抱歉有任何混淆。
  • 重要问题:您是否编写了“已经在 Tast Manager 中”的程序,因此您有源代码吗?或者您是否想要(并且必须,因为您没有源代码)编写第二个仅关闭第一个弹出窗口的程序?
  • 第二个选项...我没有编写有弹出窗口的程序。

标签: c# windows event-handling window


【解决方案1】:

如果您尝试按照我的要求进行操作(一次只允许运行一个程序实例),这里有一个使用Mutex 的优雅解决方案。您可能可以复制并粘贴大部分代码来实现您想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多