<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

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

      [摘要]我們都知道微軟.Net中,C# 是用來開發網絡解決方案的首先語言。但是在胖客戶端,C# 同樣有著出色的表現。對那些熟悉 Win32 API 的程序員來說,關鍵是如何將 C# 的新特性與 Win32 ...
      我們都知道微軟.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。


      日韩精品一区二区三区高清