在C#中调用Win32函数EnumWindows枚举所有窗口
2012-08-08 00:09
531 查看
下面例子说明如何在 C# 中调用 Win32 API - EnumWindows 枚举所有窗口:
1.首先需要声明一个委托函数用于 Win32 API - EnumWindows 的回调函数:
public delegate bool CallBack(int hwnd, int lParam);
2.然后利用 C# 中的平台调用声明从 USER32.DLL 库中调用 API - EnumWindows,具体参数请参考 MSDN - Win32 API。
[DllImport("user32")]
public static extern int EnumWindows(CallBack x, int y);
3.最后实例化委托,调用 EnumWindows。
CallBack myCallBack = new CallBack(EnumWindowsApp.Report);
4.完全代码如下:
1.首先需要声明一个委托函数用于 Win32 API - EnumWindows 的回调函数:
public delegate bool CallBack(int hwnd, int lParam);
2.然后利用 C# 中的平台调用声明从 USER32.DLL 库中调用 API - EnumWindows,具体参数请参考 MSDN - Win32 API。
[DllImport("user32")]
public static extern int EnumWindows(CallBack x, int y);
3.最后实例化委托,调用 EnumWindows。
CallBack myCallBack = new CallBack(EnumWindowsApp.Report);
4.完全代码如下:
using System; using System.Runtime.InteropServices; public delegate bool CallBack(int hwnd, int lParam); public class EnumWindowsApp { [DllImport("user32")] public static extern int EnumWindows(CallBack x, int y); public static void Main() { CallBack myCallBack = new CallBack(EnumWindowsApp.Report); EnumWindows(myCallBack, 0); } public static bool Report(int hwnd, int lParam) { Console.Write("Window handle is :"); Console.WriteLine(hwnd); return true; } }
相关文章推荐
- 在C#中调用Win32函数EnumWindows枚举所有窗口。
- 在C#中调用Win32函数EnumWindows枚举所有窗口
- C#调用API函数EnumWindows枚举窗口的方法
- C#调用API函数EnumWindows枚举窗口的方法
- 【C#】无损转换Image为Icon 【C#】组件发布:MessageTip,轻快型消息提示窗 【C#】给无窗口的进程发送消息 【手记】WebBrowser响应页面中的blank开新窗口及window.close关闭本窗体 【手记】调用Process.EnterDebugMode引发异常:并非所有引用的特权或组都分配给呼叫方 【C#】DataRowState演变备忘
- c# 枚举windows当前的所有窗口及子窗口
- C#调用API函数EnumWindows枚举窗口的方法
- C#调用C++的DLL搜集整理的所有数据类型转换方式 (转)
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- 在 CTreeCtrl 中枚举系统中的所有窗口!(I)
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- C# 父窗口应用,调用子窗口
- 是不是所有的dll都可以被c#调用?
- C#枚举系统安装的所有打印机
- C#调用WinAPI及窗口过程
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- c# wpf wpf 子窗口调用父窗口(或者父窗口响应子窗口事件)
- C#枚举系统安装的所有打印机
- VC++MFC 枚举当前打开的所有窗口