Get Current Window Handle and Caption With Windows API In C#
In this article I will show you how to use Windows API function GetForegroundWindow, and GetWindowText.
GetForegroundWindow :
The GetForegroundWindow function returns a handle to the window with which the user is currently working.
GetWindowText:
The GetWindowText function copies the text of the specified window's title bar (if it has one) into a buffer.
For more information's MSDN is the great place for Windows API functions.
Start a new project, add labels, button and timer. Make sure set the timer Enable property to true.
Include these lines at the top
using System.Runtime.InteropServices;
using System.Text;
Add following lines to declare API functions, to get the Windows API functions we will have to import "user32.dll" Dlls.
[ DllImport("user32.dll") ]
static extern int GetForegroundWindow();
[ DllImport("user32.dll") ]
static extern int GetWindowText(int hWnd, StringBuilder text, int count);
Then, write the code for the function
private void GetActiveWindow()
{
const int nChars = 256;
int handle = 0;
StringBuilder Buff = new StringBuilder(nChars);
handle = GetForegroundWindow();
if ( GetWindowText(handle, Buff, nChars) > 0 )
{
this.captionWindowLabel.Text = Buff.ToString();
this.IDWindowLabel.Text = handle.ToString();
}
}
and call GetActiveWindow function within timer function
private void timer1_Tick(object sender, System.EventArgs e)
{
GetActiveWindow();
}
That's all.
After running the application, open a notepad, click on it, and you will get the window caption and handle.
Keep Coding !!!
Download the source code.












No comments yet... Be the first to leave a reply!