2009-10-13 4 views
3

VB.NET의 다른 응용 프로그램보다 작은 헤드 오버레이 디스플레이 (HUD)를 오버레이하는 응용 프로그램을 작성하는 데 관심이 있습니다. 이것의 예는 무엇입니까?다른 윈도우의 오버레이 텍스트 - HUD

열려있는 모든 창을 열거하고 원하는 창을 찾은 다음 창에서 특정 위치에 일부 텍스트를 오버레이해야합니다. 사용자가 해당 창을 이동하면 텍스트를 따라야합니다. (필자는 반복적으로 반복하여 텍스트를 칠할 것입니다.)

편집 : 아무도 내 원래 쿼리에 응답하지 않았습니다. 해당 언어의 전문가가 답을 얻을 수 있는지 확인하기 위해 키워드에 C#을 추가했습니다.

답변

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

처럼 뭔가 그것에 음모 없습니다 그러나 오버레이 할 수 하나가 해결책은 자신의 테두리가 적은 양식 (심지어 투명하게 만들 수 있음)을 작성하고 텍스트를 그 위에 배치하는 것입니다. 그런 다음이 특수 양식을 다른 응용 프로그램 위에 놓습니다.

관련 문제