天天看點

在C#中調用Win32函數EnumWindows枚舉所有視窗。

開發旺旺群發軟體,難點及重要技術點分析(一)

一.        在C#中調用Win32函數EnumWindows枚舉所有視窗。

EnumWindows 函數通過借助于應用程式定義的回調函數傳遞每個視窗句柄枚舉所有頂層的螢幕視窗。直到最後一個頂層視窗被枚舉或者回調函數傳回false ,EnumWindows 函數才會退出停止枚舉過程。

下面例子說明如何在 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.代碼如下:

二.          現在我們用一個winform來示範查找旺旺視窗的句柄

代碼如下:

繼續閱讀