Use the FindWindow function in C # To get a handle from the title

Source: Internet
Author: User

FindWindow is used to obtain the window handle based on the class name and window name. However, this function cannot find subwindows and is case-insensitive.

If you want to search from a subwindow, you need to use find1_wex.

1. Use the following method in C:

[DllImport ("User32.dll", EntryPoint = "FindWindow")]
Private static extern IntPtr FindWindow (string lpClassName, string lpWindowName );
[DllImport ("User32.dll", EntryPoint = "find1_wex")]
Private static extern IntPtr find1_wex (IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName );
[DllImport ("User32.dll", EntryPoint = "FindWindow")]
Private static extern IntPtr FindWindow (string lpClassName, string lpWindowName );
[DllImport ("User32.dll", EntryPoint = "find1_wex")]
Private static extern IntPtr find1_wex (IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName );

2. instance reference:

IntPtr hWnd = FindWindow (null, "test Demo ");

In this way, all the windows with the title "test Demo" will be searched.

For more information, see the following.

3. Detailed description of FindWindow parameters:

Parameters

LpClassName
[In] Pointer to a null-terminated string that specifies the class name or a class atom created by a previous call to the RegisterClass or RegisterClassEx function. the atom must be in the low-order word of lpClassName; the high-order word must be zero.
If lpClassName points to a string, it specifies the window class name. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names.

If lpClassName is NULL, it finds any window whose title matches the lpWindowName parameter.

LpWindowName
[In] Pointer to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match.
Return Value

If the function succeeds, the return value is a handle to the window that has the specified class name and window name.

If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Remarks

If the lpWindowName parameter is not NULL, FindWindow callthe GetWindowText function to retrieve the window name for comparison. For a description of a potential problem that can arise, see the Remarks for GetWindowText.

To check if the Microsoft intelliitype version 1.x software is running, call FindWindow as follows:

Copy Code
FindWindow ("MSITPro: EventQueue", NULL); To check if the intelliitype version 2.0 software is running, call FindWindow as follows:

Copy Code
FindWindow ("Type32_Main_Window", NULL); If the intelliitype software is running, it sends WM_APPCOMMAND messages to the application. Otherwise the application must install a hook to receive WM_APPCOMMAND messages.

Microsoft Windows 95 or later: FindWindowW is supported by the Microsoft Layer for Unicode (MSLU ). to use this, you must add certain files to your application, as outlined in Microsoft Layer for Unicode on Windows 95/98/Me Systems.

Example

For an example, see Retrieving the Number of Mouse Wheel Scroll Lines.

Function Information

Minimum DLL Version user32.dll
Header Declared in Winuser. h, include Windows. h
Import library User32.lib
Minimum operating systems Windows 95, Windows NT 3.1
Unicode Implemented as ANSI and Unicode versions.
From: http://blog.csdn.net/soief/archive/2009/04/20/4094476.aspx

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.