gpt4 book ai didi

.net - 从 C# 应用程序控制其他窗口

转载 作者:可可西里 更新时间:2023-11-01 09:22:29 25 4
gpt4 key购买 nike

我正在编写一个 C# 应用程序,它将聚合对多个应用程序(WMP、Google Earth 等)的控制。对于不是我自己编写的应用程序,我作为一个进程启动,所以我有它们的句柄(我相信 handle = Process.Start("C:\whatever.exe"); 是代码)。

为了使其顺利运行,我需要能够控制每个窗口的最小化/最大化状态,包括我使用 Process.Start() 启动的窗口。我见过几种声称可以做到这一点的方法,通常需要导入 user32.dll 并应用 ShowWindow(handle, state)。

我问两个问题。这是最好的方法吗?我是 .NET/Windows 编程的新手(来自 *nix)。此外,我还无法让它工作,所以有什么怪癖会吸引新手吗?

(仅供引用:Windows 7 RTM 上的 VS 2008)

最佳答案

如果您正在寻找窗口的句柄,则获取进程的句柄可能是错误的句柄。

在我使用 VB6 的时候,我使用的库可以让你通过它们的标题找到窗口,然后你可以从那里将消息传递给 min/max/close/activate 等,但是自从迁移到 .Net 之后我没有做过类似的事情,尽管我确定 .Net 存在相同类型的库

回复评论:
是的,我看到有一个 GetMainWindowHandle 属性,所以这是向下的一步。接下来您需要查看 Windows 消息传递,这是您发送“消息”以执行各种 Windows 操作的地方。我手边没有消息代码,但是一旦您知道每条消息的代码,它就相当简单了。

关于.net - 从 C# 应用程序控制其他窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1545332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com