Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
In this post the basics for finding and hiding a window will be shown in Visual Studio 2008 (C#). As previously mentioned in Snazzy OSD status with BGInfo, hiding the Windows 7 Setup window will be demonstrated.
Creating and Compiling
First, create a simple Console Application under the C# tree.
Next, copy and paste the code sample below.
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices; // Namespace for Import DLL
namespace HideSetupWindow
{
class Program
{
static void Main(string[] args)
{
// ####################
// | Find Window
// ####################
int hwnd = WinAPI.FindWindow(null, "FirstUXWnd");
Console.WriteLine("FindWindow API Result: " + hwnd.ToString());
// ####################
// | Hide Window : 0 = Hide, 1 = Show
// ####################
if (hwnd != 0) WinAPI.ShowWindow(hwnd, 0);
}
internal static class WinAPI
{
// ----------------------------------------------------------
// FindWindow : https://msdn.microsoft.com/en-us/library/ms633499.aspx
// ----------------------------------------------------------
[DllImport("user32.dll", SetLastError = true)]
internal static extern int FindWindow(string lpClassName, string lpWindowName);
// ----------------------------------------------------------
// Show Window : https://msdn.microsoft.com/en-us/library/ms633548.aspx
// ----------------------------------------------------------
[DllImport("user32.dll", SetLastError = true)]
internal static extern int ShowWindow(int hwnd, int nCmdShow);
}
// ####################
// NOTE: Any of the following will work...
// ####################
// ----------------------------------------------------------------
//int hwnd = WinAPI.FindWindow("FirstUXWndClass", null);
//int hwnd = WinAPI.FindWindow("FirstUXWndClass", "FirstUXWnd");
//int hwnd = WinAPI.FindWindow(null, "FirstUXWnd");
// ----------------------------------------------------------------
}
}
Finally, compile the application.
Tips & Tricks
Use the code sample below to hide an instance of Notepad. Two points worth mentioning:
- The Class Name for Notepad windows is “Notepad”; all Notepad windows will share this common class name.
- The Text or Window Name for Notepad windows may vary for each window; for example, a new instance of Notepad will usually contain the window text “Untitled – Notepad”
Parameter 1 is the Class Name. Parameter 2 is the Window Name. Searching on either (or both) parameter is possible:
/* Sample 1 */ int hwnd = WinAPI.FindWindow("Notepad", null);
/* Sample 2 */ int hwnd = WinAPI.FindWindow(null, "Untitled - Notepad");
/* Sample 3 */ int hwnd = WinAPI.FindWindow("Notepad", "Untitled - Notepad
In parting, a very accommodating utility for learning and working with this type of window manipulation is Winspector.
This blog post was originally created by Michael Schmidt.