溫馨提示×

C# FindWindow如何查找特定窗口

c#
小樊
81
2024-11-19 14:20:46
欄目: 編程語言

在C#中,您可以使用FindWindow函數(shù)來查找特定的窗口。這個(gè)函數(shù)是Windows API的一部分,它允許您根據(jù)窗口類名和窗口標(biāo)題來查找窗口。以下是一個(gè)簡單的示例,展示了如何使用FindWindow來查找一個(gè)具有特定類名和窗口標(biāo)題的窗口:

using System;
using System.Runtime.InteropServices;

class Program
{
    [DllImport("user32.dll")]
    static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

    static void Main()
    {
        // 窗口類名(類名是區(qū)分大小寫的)
        string className = "Notepad";
        // 窗口標(biāo)題(標(biāo)題是區(qū)分大小寫的)
        string windowTitle = "無標(biāo)題 - 記事本";

        // 使用FindWindow函數(shù)查找窗口
        IntPtr hwnd = FindWindow(className, windowTitle);

        if (hwnd != IntPtr.Zero)
        {
            Console.WriteLine($"找到了窗口!句柄:{hwnd}");
        }
        else
        {
            Console.WriteLine("未找到窗口。");
        }
    }
}

在這個(gè)示例中,我們首先導(dǎo)入了System.Runtime.InteropServices命名空間,以便我們可以使用DllImport屬性來導(dǎo)入Windows API函數(shù)。然后,我們定義了一個(gè)名為FindWindow的靜態(tài)方法,它接受兩個(gè)字符串參數(shù):lpClassNamelpWindowName,分別表示窗口類名和窗口標(biāo)題。

Main方法中,我們設(shè)置了要查找的窗口的類名和窗口標(biāo)題,然后調(diào)用FindWindow函數(shù)來查找該窗口。如果找到了窗口,FindWindow將返回一個(gè)非零的句柄值;否則,它將返回IntPtr.Zero。最后,我們根據(jù)FindWindow的返回值輸出相應(yīng)的結(jié)果。

0