3

VB.NET で、別のアプリケーションの上に小さなヘッドアップ ディスプレイ ( HUD )をオーバーレイするアプリケーションを作成することに興味があります。これの例は何ですか?

開いているすべてのウィンドウを列挙して必要なウィンドウを見つけ、ウィンドウの特定の位置にテキストをオーバーレイする必要があります。ユーザーがそのウィンドウを移動すると、私のテキストが続く必要があります。(私はおそらくテキストをループで何度もペイントするでしょう)。

編集:誰も私の元のクエリに答えませんでした.C#をキーワードに追加して、その言語の専門家が答えを持っているかどうかを確認しました。

4

1 に答える 1

4

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);

しかし、オーバーレイするには... 考えられる解決策の1つは、独自のボーダーレスフォームを作成し(透明にすることもできます)、その上にテキストを配置することです。次に、この特別なフォームを別のアプリケーションの上に配置します。

于 2010-03-13T03:21:31.263 に答える