c#遍历窗口,根据标题获取handle并显示窗口

using System.Runtime.InteropServices;

using System.Text;

//1,定义

//[DllImport("User32.dll", EntryPoint = "FindWindow")]

//public extern static IntPtr FindWindow(string lpClassName, string lpWindowName);

[DllImport("user32.dll", EntryPoint = "ShowWindow", CharSet = CharSet.Auto)]

public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);

//[DllImport("user32.dll")]

//public static extern int GetWindowTextLength(IntPtr hWnd);

[DllImport("User32.dll", CharSet = CharSet.Auto)]

public static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int nMaxCount);

//[DllImport("user32.dll")]

//private static extern int GetClassName(IntPtr hWnd, StringBuilder lpString, int nMaxCount);

// Callback Declaration

public delegate bool EnumWindowsCallback(IntPtr hwnd, int lParam);

[DllImport("user32.dll")]

private static extern int EnumWindows(EnumWindowsCallback callPtr, int lParam);

private EnumWindowsCallback callBackFn = new EnumWindowsCallback(ReportWindow);

private static StringBuilder title = new StringBuilder(256);

//2,回调方法的具体实现

public static bool ReportWindow(IntPtr hwnd, int lParam)

{

GetWindowText(hwnd, title, title.Capacity);

if ("TestWindow".Equals(title.ToString()))

{

//MessageBox.Show("找到了!"); //窗口的title: TestWindow

ShowWindow(hwnd, 8);

}

return true;

}

//3,调用回调方法

EnumWindows(callBackFn, 0);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值