c# - 在其他人的窗口上覆盖文本 - HUD

标签 c# vb.net hud

我有兴趣在 VB.NET 中编写一个应用程序,在另一个应用程序上覆盖一个小的抬头显示 ( HUD )。这是什么例子?

我需要枚举所有打开的窗口来找到我想要的窗口,然后在窗口的特定位置覆盖一些文本。如果用户移动该窗口,我的文本将需要跟随。 (我可能会一遍又一遍地循环绘制文本)。

编辑:没有人回答我的原始查询 - 我将 C# 添加到关键字中以查看是否有任何使用该语言的专家可能有答案。

最佳答案

您可以使用 WinApi 枚举窗口。 你可以开始谷歌搜索

[DllImport("user32.dll")]
public static extern int EnumWindows(EnumWindowsProc ewp, int lParam);

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GetWindowRect(IntPtr hWnd, ref WapiRect lpRect);

当你找到你的窗口并拥有它的句柄时,用类似的东西在上面绘图是没有问题的

Graphics g = Graphics.FromHwnd(win.Handle);
g.FillRectangle(new SolidBrush(Color.White), 0, 0, 1000, 1000);

但是要覆盖... 一种可能的解决方案是创建自己的无边框形式(它甚至可以透明)并将您的文本放在上面。然后只需将此特殊表格放在另一个应用程序之上即可。

关于c# - 在其他人的窗口上覆盖文本 - HUD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1562863/

相关文章:

mysql - 从 DB VB.NET 填充 Datagridview

c# - 如何使用 WebResponse 下载 .wmv 文件

c# - 如何隐藏字段集?

c# - 锁和互斥锁有什么区别?

vb.net - 从父窗体 MenuStrip 中删除 ToolStripMenuItem

vb.net - 帮助使用 Linq 和泛型。在查询中使用 GetValue

c++ - 为什么我的 HUD 未在 OpenGL 中渲染?

c++ - 菜单导航的设计模式(c/c++)

Java3d : How to edit a drawn 2d overlay on a Java 3d scene?

c# - Web 用户控件设置默认值