C# 更改另一个正在运行的应用程序窗口的属性

发布于 2024-11-03 08:44:05 字数 153 浏览 0 评论 0原文

如果我有一个正在运行的程序的 IntPtr,有什么方法可以更改该窗口的属性——例如:FormBorderStyle、ShowInTaskbar 甚至 BackColor 等属性?

我对 C# 还很陌生,我真的很好奇这样的事情是否可能。

衷心感谢您的时间和帮助!

If I have a IntPtr of a running program, is there any way to change properties about that window--- for instance properties like: FormBorderStyle, ShowInTaskbar and maybe even BackColor?

Im pretty new to C# and am really curious if such a thing is even possible.

Thanks kindly for your time and help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉墨 2024-11-10 08:44:05

不,您不能直接操作另一个进程窗口的托管属性。然而,通过一些技巧你就可以实现这一点。

您需要做的是将一段托管代码注入到正在运行的进程中,然后这段注入的代码将负责实际操作该进程中托管窗口/控件的属性。

与其重复大量信息,不如看看这篇旧的代码项目文章,它几乎实现了您想要的目标。请记住,这仅用于管理另一个 .NET 进程中托管窗口的属性,并且您可能会遇到不同版本的 .NET 问题。

http://www.codeproject.com/KB/dotnet/wfspy.aspx

No, you cannot directly manipulate the managed properties of another process' windows. However, with a little trickery you can achieve this.

What you will need to do is inject a piece of managed code into the running process this piece of injected code will then be responsible for actually manipulating the properties of the managed windows/controls in that process.

Rather than regurgitate a lot of information, take a look at this old codeproject article which achieves pretty much what it sounds like you are looking for. Keep in mind that this is only for managing the proprieties of managed windows in another .NET process and you might have issues with different versions of .NET.

http://www.codeproject.com/KB/dotnet/wfspy.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文