1

我正在寻找一个图形覆盖来显示一些数据,这些数据将位于任何窗口的顶部,甚至是全屏应用程序。

我可以使用 API 挂钩来获取活动窗口,这将允许我创建一个图形对象并在活动窗口的顶部进行绘制,这几乎是我正在寻找的。唯一的问题是,当我尝试使用拉绳调用时,它会使用该窗口的边界来绘制数据。

所以调用:

gphx.DrawString("test", New Font("Tahoma", 12), New SolidBrush(Color.Red), New PointF(0, 0))

将在表单可用区域的左上角显示“测试”,甚至在标题栏中也不显示。您甚至不能在该调用中使用负数,因为它使用表单可用区域作为画布,因此您最终只能绘制到不可见的区域。

我的目标是让数据始终显示在屏幕的同一位置,无论窗口位于何处。

API Hook 用于获取活动窗口。

<Runtime.InteropServices.DllImport("user32.dll")>
    Public Function GetForegroundWindow() As IntPtr
    End Function

是否有获取屏幕句柄(我严重怀疑)或直接绘制到屏幕的方法的功能?

我宁愿不必使用 DirectX 库来完成此操作,但如果无法使用 GDI+ 或通过其他一些 API 调用,我将不得不走这条路。

4

0 回答 0