亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C# Windows API應用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法

2020-01-24 01:01:01
字體:
來源:轉載
供稿:網友

本文實例講述了C# Windows API應用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法。分享給大家供大家參考,具體如下:

Windows API

Windows 這個多作業系統除了協調應用程序的執行、分配內存、管理資源…之外, 它同時也是一個很大的服務中心,調用這個服務中心的各種服務(每一種服務就是一個函數),可以幫應用程式達到開啟視窗、描繪圖形、使用周邊設備等目的,由于這些函數服務的對象是應用程序(Application), 所以便稱之為 Application Programming Interface,簡稱 API 函數。WIN32 API也就是Microsoft Windows 32位平臺的應用程序編程接口。

GetDesktopWindow

函數功能:該函數返回桌面窗口的句柄。桌面窗口覆蓋整個屏幕。桌面窗口是一個要在其上繪制所有的圖標和其他窗口的區域。

函數原型:HWND GetDesktopWindow(VOID)

參數:無。

返回值:函數返回桌面窗口的句柄。

速查:Windows NT:3.1以上版本;Windows:95以上版本:

頭文件:Winuser.h;庫文件:user32.lib。

【聲明】

vb:

Public Declare Function GetDesktopWindow Lib “user32” Alias “GetDesktopWindow” () As Long

vb_net:

Public Declare Function GetDesktopWindow Lib “user32” Alias “GetDesktopWindow” () As Integer

c#:

[DllImport(“user32.dll”, EntryPoint = “GetDesktopWindow”, CharSet = CharSet.Auto, SetLastError = true)]
static extern IntPtr GetDesktopWindow();

【說明】

獲得代表整個屏幕的一個窗口(桌面窗口)句柄

【返回值】

Long,桌面窗口的句柄

獲得桌面所有窗口句柄的方法

創建項目

文件->新建->項目…

API導入

GetDesktopWindow

/// <summary>/// 該函數返回桌面窗口的句柄。桌面窗口覆蓋整個屏幕。桌面窗口是一個要在其上繪制所有的圖標和其他窗口的區域。/// 【說明】獲得代表整個屏幕的一個窗口(桌面窗口)句柄./// </summary>/// <returns>返回值:函數返回桌面窗口的句柄。</returns>[DllImport("user32.dll", EntryPoint = "GetDesktopWindow", CharSet = CharSet.Auto, SetLastError = true)]static extern IntPtr GetDesktopWindow();

GetWindow

/// <summary>/// 該函數返回與指定窗口有特定關系(如Z序或所有者)的窗口句柄。/// 函數原型:HWND GetWindow(HWND hWnd,UNIT nCmd);/// </summary>/// <param name="hWnd">窗口句柄。要獲得的窗口句柄是依據nCmd參數值相對于這個窗口的句柄。</param>/// <param name="uCmd">說明指定窗口與要獲得句柄的窗口之間的關系。該參數值參考GetWindowCmd枚舉。</param>/// <returns>返回值:如果函數成功,返回值為窗口句柄;如果與指定窗口有特定關系的窗口不存在,則返回值為NULL。/// 若想獲得更多錯誤信息,請調用GetLastError函數。/// 備注:在循環體中調用函數EnumChildWindow比調用GetWindow函數可靠。調用GetWindow函數實現該任務的應用程序可能會陷入死循環或退回一個已被銷毀的窗口句柄。/// 速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;頭文件:winuser.h;庫文件:user32.lib。/// </returns>[DllImport("user32.dll", SetLastError = true)]static extern IntPtr GetWindow(IntPtr hWnd, GetWindowCmd uCmd);

GetWindowCmd

/// <summary>/// 窗口與要獲得句柄的窗口之間的關系。/// </summary>enum GetWindowCmd : uint{  /// <summary>  /// 返回的句柄標識了在Z序最高端的相同類型的窗口。  /// 如果指定窗口是最高端窗口,則該句柄標識了在Z序最高端的最高端窗口;  /// 如果指定窗口是頂層窗口,則該句柄標識了在z序最高端的頂層窗口:  /// 如果指定窗口是子窗口,則句柄標識了在Z序最高端的同屬窗口。  /// </summary>  GW_HWNDFIRST = 0,  /// <summary>  /// 返回的句柄標識了在z序最低端的相同類型的窗口。  /// 如果指定窗口是最高端窗口,則該柄標識了在z序最低端的最高端窗口:  /// 如果指定窗口是頂層窗口,則該句柄標識了在z序最低端的頂層窗口;  /// 如果指定窗口是子窗口,則句柄標識了在Z序最低端的同屬窗口。  /// </summary>  GW_HWNDLAST = 1,  /// <summary>  /// 返回的句柄標識了在Z序中指定窗口下的相同類型的窗口。  /// 如果指定窗口是最高端窗口,則該句柄標識了在指定窗口下的最高端窗口:  /// 如果指定窗口是頂層窗口,則該句柄標識了在指定窗口下的頂層窗口;  /// 如果指定窗口是子窗口,則句柄標識了在指定窗口下的同屬窗口。  /// </summary>  GW_HWNDNEXT = 2,  /// <summary>  /// 返回的句柄標識了在Z序中指定窗口上的相同類型的窗口。  /// 如果指定窗口是最高端窗口,則該句柄標識了在指定窗口上的最高端窗口;  /// 如果指定窗口是頂層窗口,則該句柄標識了在指定窗口上的頂層窗口;  /// 如果指定窗口是子窗口,則句柄標識了在指定窗口上的同屬窗口。  /// </summary>  GW_HWNDPREV = 3,  /// <summary>  /// 返回的句柄標識了指定窗口的所有者窗口(如果存在)。  /// GW_OWNER與GW_CHILD不是相對的參數,沒有父窗口的含義,如果想得到父窗口請使用GetParent()。  /// 例如:例如有時對話框的控件的GW_OWNER,是不存在的。  /// </summary>  GW_OWNER = 4,  /// <summary>  /// 如果指定窗口是父窗口,則獲得的是在Tab序頂端的子窗口的句柄,否則為NULL。  /// 函數僅檢查指定父窗口的子窗口,不檢查繼承窗口。  /// </summary>  GW_CHILD = 5,  /// <summary>  /// (WindowsNT 5.0)返回的句柄標識了屬于指定窗口的處于使能狀態彈出式窗口(檢索使用第一個由GW_HWNDNEXT 查找到的滿足前述條件的窗口);  /// 如果無使能窗口,則獲得的句柄與指定窗口相同。  /// </summary>  GW_ENABLEDPOPUP = 6}/*GetWindowCmd指定結果窗口與源窗口的關系,它們建立在下述常數基礎上:   GW_CHILD   尋找源窗口的第一個子窗口   GW_HWNDFIRST   為一個源子窗口尋找第一個兄弟(同級)窗口,或尋找第一個頂級窗口   GW_HWNDLAST   為一個源子窗口尋找最后一個兄弟(同級)窗口,或尋找最后一個頂級窗口   GW_HWNDNEXT   為源窗口尋找下一個兄弟窗口   GW_HWNDPREV   為源窗口尋找前一個兄弟窗口   GW_OWNER   尋找窗口的所有者*/

編寫方法

/// <summary>/// 獲得桌面所有窗口句柄的方法/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button1_Click(object sender, EventArgs e){  dataGridView1.Rows.Clear();  //1、獲取桌面窗口的句柄  IntPtr desktopPtr = GetDesktopWindow();  //2、獲得一個子窗口(這通常是一個頂層窗口,當前活動的窗口)  IntPtr winPtr = GetWindow(desktopPtr, GetWindowCmd.GW_CHILD);  //3、循環取得桌面下的所有子窗口  while (winPtr != IntPtr.Zero)  {    //4、繼續獲取下一個子窗口    winPtr = GetWindow(winPtr, GetWindowCmd.GW_HWNDNEXT);  }}

更多關于C#相關內容感興趣的讀者可查看本站專題:《C#窗體操作技巧匯總》、《C#數據結構與算法教程》、《C#常見控件用法教程》、《C#面向對象程序設計入門教程》及《C#程序設計之線程使用技巧總結

希望本文所述對大家C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品美女在线观看播放| 欧美性做爰毛片| 国产精品久久久av久久久| 国内精品久久久久伊人av| 亚洲三级av在线| 欧美日韩亚洲一区二| 在线视频亚洲欧美| 亚洲综合精品伊人久久| 精品国产欧美一区二区五十路| 亚洲天堂成人在线视频| 亚洲国产精品久久久| 日韩欧美一区二区三区久久| 国产精品jvid在线观看蜜臀| 久久精品99久久久久久久久| 亚洲护士老师的毛茸茸最新章节| 在线视频精品一| 久久久久亚洲精品| 国产亚洲精品久久久优势| 欧美精品18videos性欧美| 久久精品中文字幕| 国产97色在线|日韩| 97国产suv精品一区二区62| 91日本在线观看| 日韩国产高清污视频在线观看| 992tv成人免费视频| 欧美性猛交99久久久久99按摩| 2019中文在线观看| 亚洲综合日韩中文字幕v在线| 91久久国产精品91久久性色| 日本午夜精品理论片a级appf发布| 久久久最新网址| 欧美国产日韩xxxxx| 高清欧美性猛交| 欧美一级bbbbb性bbbb喷潮片| 欧美裸体xxxx极品少妇软件| 久久99国产精品久久久久久久久| 亚洲国产成人精品女人久久久| 欧美激情网站在线观看| 国产精品人人做人人爽| 欧美午夜久久久| 91精品国产自产在线| 欧美日韩福利电影| 亚洲成avwww人| 亚洲 日韩 国产第一| 国产综合香蕉五月婷在线| 日韩暖暖在线视频| 成人av电影天堂| 国产精品高潮呻吟久久av野狼| 欧美日韩免费网站| 91综合免费在线| 久久深夜福利免费观看| 欧美日韩爱爱视频| 国产视频自拍一区| 国产一区视频在线播放| 国产一区二区精品丝袜| 日韩在线视频一区| 日韩成人性视频| 日韩视频欧美视频| 久久久影视精品| 欧美天天综合色影久久精品| 欧美成aaa人片在线观看蜜臀| 日本人成精品视频在线| 91精品国产高清自在线看超| www.亚洲男人天堂| 色偷偷888欧美精品久久久| 久久久成人的性感天堂| 日本精品视频在线| 日韩av免费一区| 国产精品999999| 久久免费精品视频| 日本欧美中文字幕| 深夜福利一区二区| 91社影院在线观看| 久久久久久有精品国产| 日韩av手机在线观看| 亚洲白拍色综合图区| 国产精品免费久久久久影院| 欧美综合国产精品久久丁香| 国产精品稀缺呦系列在线| 亚洲欧美另类在线观看| 日韩欧美中文字幕在线播放| 亚洲激情视频在线观看| 午夜欧美不卡精品aaaaa| 欧美亚洲另类制服自拍| 17婷婷久久www| 欧美亚洲另类激情另类| 国产精品狠色婷| 日本19禁啪啪免费观看www| 久久久综合免费视频| 成人乱色短篇合集| 久久免费精品日本久久中文字幕| 亚洲一区二区少妇| 成人欧美一区二区三区黑人孕妇| 日韩va亚洲va欧洲va国产| 久久最新资源网| 午夜精品视频在线| 日韩美女免费观看| 欧美日韩亚洲系列| 午夜精品在线观看| 成人做爽爽免费视频| 亚洲a成v人在线观看| 成人在线小视频| 日韩国产激情在线| 国产一区二区三区四区福利| 午夜精品久久17c| 国产精品九九久久久久久久| 精品中文字幕乱| 久久免费视频观看| 国产免费一区二区三区在线观看| 久久久噜噜噜久噜久久| 日韩欧美中文免费| 欧美精品在线观看| 国产成人综合一区二区三区| 国产视频久久网| 精品国内产的精品视频在线观看| 日韩av电影中文字幕| 永久免费精品影视网站| 中日韩美女免费视频网站在线观看| 国产欧美一区二区三区视频| 国产精品久久精品| 欧美另类在线观看| 国产精品91视频| 91po在线观看91精品国产性色| 九色精品免费永久在线| 亚洲另类xxxx| 综合136福利视频在线| 亚洲色图50p| 亚洲精品乱码久久久久久金桔影视| 51视频国产精品一区二区| 国产精品扒开腿爽爽爽视频| 国产精品久久精品| 欧美电影免费观看网站| 久久久久一本一区二区青青蜜月| 97视频在线观看视频免费视频| 亚洲伊人第一页| 668精品在线视频| 国产精品久久婷婷六月丁香| 欧美成人午夜剧场免费观看| 亚洲天堂影视av| 菠萝蜜影院一区二区免费| 国产日本欧美一区二区三区在线| 亚洲一区二区免费在线| 在线视频一区二区| 日韩欧美精品免费在线| 成人精品一区二区三区电影免费| 日本精品视频在线播放| 这里只有精品久久| 久久精品成人动漫| 亚洲成人激情在线观看| 日韩高清免费在线| 日韩欧美亚洲一二三区| 日韩高清a**址| 高清欧美性猛交xxxx黑人猛交| 日本精品性网站在线观看| 91wwwcom在线观看| 91av在线视频观看| 日本不卡免费高清视频| 亚洲在线视频观看| 久久香蕉国产线看观看网| 中文字幕欧美专区| 亚洲va男人天堂| 亚洲精品中文字| 亚洲国产毛片完整版| 97视频免费在线看|