是否可以通过 C# 对活动窗口执行操作

本文关键字:窗口 执行 操作 活动 可以通过 是否 | 更新日期: 2023-09-27 18:34:38

我想写一些代码,可以自动在活动窗口上执行操作。例如,如果我想按忽略按钮一次,如果我插入新的 DOK,就会弹出窗口。

我想到了一个代码,一旦弹出一个特定的(已知(窗口,它就会按几个 TAB,然后按 Enter。

我能实现这样的代码吗? 在 C# 中可推荐。

是否可以通过 C# 对活动窗口执行操作

我想

到了你问题的几个答案,因为不清楚你在问什么。其中一个主题可能是研究领域:

如果要在正在运行的应用程序以外的应用程序中按活动窗口的键,可以阅读有关提升的权限、进程间通信以及使用 Windows 函数调用访问键盘的信息。除了使Windows向其发送各种消息外,您通常不能对其他应用程序执行任何操作。想法:如果您的应用程序不是活动窗口,您将如何指示何时按键?

如果活动窗口是应用程序中的一个窗口,那么从长远来看,通过找到适合 C# 面向对象模型的解决方案,您会更好。如果您希望某些窗口有时运行某些代码(当窗口处于活动状态时(,则可以通过将代码放入公共超类并让窗口类继承它来共享代码。以这种方式看待它可能会有所启发,但您可能必须找到一个稍微不同的解决方案,因为听起来您的窗口应该继承 Window 的 Window 类(在 C# 中只能有一个父类(。您可以查找"类继承",也许还可以查找"接口"。

对于共享代码而言,另一个不是面向对象的解决方案是将其放入静态函数中,并根据需要在活动窗口的代码中调用此函数。但理想情况下,活动窗口类中的代码应该操作窗口。您可以将其放入函数中,然后从应用程序中具有活动窗口的"this"引用的任何位置调用该函数。