编程语言
首页 > 编程语言> > C#-在其他窗口上覆盖文本-HUD

C#-在其他窗口上覆盖文本-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);

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

标签:hud,vb-net,c
来源: https://codeday.me/bug/20191107/2002643.html