在C#中调用Win32函数EnumWindows枚举所有窗口
2004-09-15 15:54
453 查看
我们都知道微软.Net中,C# 是用来开发网络解决方案的首先语言。但是在胖客户端,C# 同样有着出色的表现。对那些熟悉 Win32 API 的程序员来说,关键是如何将 C# 的新特性与 Win32 API 融合在一起。
下面例子说明如何在 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.完全代码如下:
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;
}
}
注:有关“委托”、“平台调用”及“实例化”等的详细资料请参考 Visual .Net Help。
下面例子说明如何在 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.完全代码如下:
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;
}
}
注:有关“委托”、“平台调用”及“实例化”等的详细资料请参考 Visual .Net Help。
相关文章推荐
- 在C#中调用Win32函数EnumWindows枚举所有窗口。
- 在C#中调用Win32函数EnumWindows枚举所有窗口
- C#调用API函数EnumWindows枚举窗口的方法
- 【C#】无损转换Image为Icon 【C#】组件发布:MessageTip,轻快型消息提示窗 【C#】给无窗口的进程发送消息 【手记】WebBrowser响应页面中的blank开新窗口及window.close关闭本窗体 【手记】调用Process.EnterDebugMode引发异常:并非所有引用的特权或组都分配给呼叫方 【C#】DataRowState演变备忘
- C#调用API函数EnumWindows枚举窗口的方法
- C#调用API函数EnumWindows枚举窗口的方法
- c# 枚举windows当前的所有窗口及子窗口
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
- C#调用C++的DLL搜集整理的所有数据类型转换方式 (转)
- C#用API如何遍历所有窗口句柄
- 在 CTreeCtrl 中枚举系统中的所有窗口!(II)
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- 枚举所有IE窗口,实现自动登录
- C#在父窗口中调用子窗口的过程(无法访问已释放的对象)
- 用C#调用Windows API向指定窗口发送按键消息 z
- c#调用API函数拖动无标题窗口及控件
- 在C#中怎么设置一个全局变量,方便我在其他的窗口中可以调用
- 枚举窗口列表中的所有父窗口(顶级和被所有窗口)
- 在 CTreeCtrl 中枚举系统中的所有窗口!(I)