FindWindow用法

函數功能:該函數獲得一個頂層窗口的句柄,該窗口的類名和窗口名與給定的字符串相匹配。這個函數不查找子窗口。在查找時不區分大小寫。

????函數型:HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName);

????參數:

????IpClassName :指向一個指定了類名的空結束字符串,或一個標識類名字符串的成員的指針。如果該參數為一個成員,則它必須為前次調用theGlobafAddAtom函數產生的全局成員。該成員為16位,必須位于IpClassName的低 16位,高位必須為 0。

????IpWindowName:指向一個指定了窗口名(窗口標題)的空結束字符串。如果該參數為空,則為所有窗口全匹配。

????返回值:如果函數成功,返回值為具有指定類名和窗口名的窗口句柄;如果函數失敗,返回值為NULL。
C#中使用該函數首先導入命名空間:

?

[c-sharp]?view plaincopy
  1. using?System.Runtime.InteropServices;??

?

然后寫API引用部分的代碼,放入 class 內部

?

[c-sharp]?view plaincopy
  1. [DllImport("user32.dll",?EntryPoint?=?"FindWindow")]??
  2. private?extern?static?IntPtr?FindWindow(string?lpClassName,?string?lpWindowName);??

?

這個函數有兩個參數,第一個是要找的窗口的類,第二個是要找的窗口的標題。在搜索的時候不一定兩者都知道,但至少要知道其中的一個。有的窗口的標題是比較容易得到的,如"計算器",所以搜索時應使用標題進行搜索。但有的軟件的標題不是固定的,如"記事本",如果打開的文件不同,窗口標題也不同,這時使用窗口類搜索就比較方便。如果找到了滿足條件的窗口,這個函數返回該窗口的句柄,否則返回0。例如:

?

[c-sharp]?view plaincopy
  1. IntPtr?hwnd?=?FindWindow(null,?"計算器");??
  2. if?(hwnd?!=?IntPtr.Zero)??
  3. {??
  4. ????MessageBox.Show("找到計算器窗口");??
  5. }??
  6. else??
  7. {??
  8. ????MessageBox.Show("沒有找到計算器窗口");??
  9. }??
  10. hwnd?=?FindWindow("Notepad",?null);??
  11. if?(hwnd?!=?IntPtr.Zero)??
  12. {??
  13. ????MessageBox.Show("找到記事本窗口");??
  14. }??
  15. else??
  16. {??
  17. ????MessageBox.Show("沒有找到記事本窗口");??
  18. }??

?

從上面的討論中可以看出,如果要搜索的外部程序的窗口標題比較容易得到,問題是比較簡單的。可如果窗口的標題不固定或者根本就沒有標題,怎么得到窗口的類呢?這時我們可使用Microsoft Spy++,運行Spy++,按ALT+F3,在彈出的界面中拖動目標圖標到程序上即可。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451213.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451213.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451213.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

中國大城市政治地位綜合實力排名

中國大城市政治地位綜合實力排名! 中國大城市政治地位綜合實力排名!政治地位: 政治地位: 1(直轄市 4 個):上海、北京、天津、重慶 2(副省級城市 15 個):廣州、深圳、武漢、南京、沈陽…

sourcemap總結

sourcemap在線上壓縮文件調試中很重要,在此總結如下: 1. 開啟sourcemap (1). 瀏覽器要開啟source-map支持(2). 壓縮文件底部要有source-map的URL,壓縮要開啟source-map(3). .map文件要放在服務器,source-map URL指向的位置 2. sou…

navicat 導出的sql文件,再導入,運行SQL文件成功,數據庫中卻沒有表

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 問題描述:本來在數據庫上右鍵 ,運行SQL文件 ,就可以導入 sql ,建表成功,并且數據也該的…

mysql索引之二級索引學習總結

二級索引又稱輔助索引、非聚集索引(no-clustered index)。b&#xff0b;tree樹結構。然而二級索引的葉子節點不保存記錄中的所有列&#xff0c;其葉子節點保存的是<健值&#xff0c;(記錄)地址>。好似聚集索引中非葉子節點保存的信息&#xff0c;不同的是二級索引保存的是…

264,avs中Skip宏塊與Direct預測模式 ,對稱模式的區別

1. B_Skip類型宏塊 &#xff1a;無像素殘差&#xff0c;無運動矢量殘差&#xff08;MVD&#xff09;和參考幀。解碼時&#xff0c;通過Direct預測模式&#xff08;時間或空間&#xff09;計算出前、后向MV后&#xff0c;直接利用前、后向MV得到像素預測值。像 素重構值像…

【hdu 6444】Neko's loop

【鏈接】 我是鏈接,點我呀:) 【題意】 給你一個序列. 你可以選擇起點i。 然后每次往右跳k次。 得到下一個值a[ik];。 問你跳m次能得到的最大值ma是多少。 如果>s輸出0 否則輸出s-ma; 【題解】 最后肯定會形成gcd(n,k)個環的。 對于每個環(長度為cnt。 預處理出從1..2cnt的…

高性能MySQL之Count統計查詢

近一段時間&#xff0c;有同事問我 “MySQL執行count很慢&#xff0c;有沒有什么優化的空間”。當時在忙&#xff0c;就回復了一句“innodb里面count統計都是實時統計&#xff0c;慢一些是正常的”&#xff0c; 周末閑暇下來&#xff0c;想到以前有好多人都問過關于count的問題…

js轉換字符串為base64位

在window對象下有兩個api,可以對ASCII編碼進行編譯,得到base64位的字符串 btoa:編碼為base64atob:解碼為ASCII碼此種方法不能對中文進行操作,因為ASCII碼中沒有中文,如果編碼會得到亂碼 要編碼中文可以先用encodeURIComponent() 對字符串進行轉義,轉義后再btoa()成base64就可以…

java 文件下載,中文表名,中文內容

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 RequestMapping("userDownloadTemplet")private void userDownloadTemplet(HttpServletRequest request,HttpServletResponse …

cherry-pick的用法

簡述 git cherry-pick可以選擇某一個分支中的一個或幾個commit(s)來進行操作。例如&#xff0c;假設我們有個穩定版本的分支&#xff0c;叫v2.0&#xff0c;另外還有個開發版本的分支v3.0&#xff0c;我們不能直接把兩個分支合并&#xff0c;這樣會導致穩定版本混亂&#xff0c…

Docker 二進制安裝docker

https://blog.csdn.net/bruce_yds/article/details/80035714轉載于:https://www.cnblogs.com/Presley-lpc/p/9698724.html

264,avs重要的變量:

B幀&#xff1a; B8pdir[i] i為0,1,2,3&#xff1b;值的含義&#xff1a;0&#xff1a;前向 &#xff1b;1&#xff1a;后向&#xff1b;2&#xff1a;雙向&#xff1b;如果為intra_block,則為-1. B8mode[i] i為0,1,2,3 &#xff0c;值的含義&#xff1a;1:16x16 2:16x8 3…

insert into 語句的三種寫法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 insert into 語句的三種寫法 方式1、 INSERT INTO t1(field1,field2) VALUE(v001,v002); // 明確只插入一條Value 方式2、 IN…

Linux系統中跟TCP相關的內核參數

1. TCP保活機制 參考 《Nginx(三) 配置文件詳解 - 基礎模塊》3.18章節 net.ipv4.tcp_keepalive_intvl&#xff1a;設置兩次相鄰探活檢測的間隔時間。默認是75秒&#xff0c;單位是秒。net.ipv4.tcp_keepalive_probes&#xff1a;設置探活最多檢測次數。默認是9次&#xff0c;單…

ECMAScript3中數組方法

<!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>ECMAScript3中數組方法</title></head><body><script>//字符串和數組之間相轉換的方法 1.join() split() /*var str abcdefg…

implements Serializable

Serializable是一個對象序列化的接口&#xff0c;一個類只有實現了Serializable接口&#xff0c;它的對象才是可序列化的。因此如果要序列化某些類的對象&#xff0c;這些類就必須實現Serializable接口。而實際上&#xff0c;Serializable是一個空接口&#xff0c;沒有什么具體…

Codeforces 1045. A. Last chance(網絡流 + 線段樹優化建邊)

題意 給你 \(n\) 個武器&#xff0c;\(m\) 個敵人&#xff0c;問你最多消滅多少個敵人&#xff0c;并輸出方案。 總共有三種武器。 SQL 火箭 - 能消滅給你集合中的一個敵人 \(\sum |S| \le 100000\) &#xff1b;認知光束 - 可以消滅 \([l, r]\) 區間中的一個敵人&#xff1b;O…

常用宏定義 - 系統相關

/** 是否iPad */ #define isPad (UI_USER_INTERFACE_IDIOM() UIUserInterfaceIdiomPad)/** 是否iPad */ #define someThing (UI_USER_INTERFACE_IDIOM() UIUserInterfaceIdiomPad)? ipad: iphone/** 獲取系統版本 */ #define IOS_VERSION &#xff3b;[UIDevice currentDevi…

周鴻祎詳解360手機戰略:賺錢不靠硬件靠服務

摘要&#xff1a;奇虎360總裁周鴻祎不久前在微博上宣布360公司將要進軍手機行業的消息后&#xff0c;一度掀起業界的軒然大波&#xff0c;褒貶之聲均不絕于耳。對于合作廠商的選擇&#xff0c;周鴻祎直言出貨量是一個重要參考指標&#xff0c;“每年的出貨量最少不低于500萬~10…

解決報錯:;Syntax error on token(s), misplaced construct(s)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 報錯如題&#xff0c;這是語法錯誤&#xff0c;如括號不匹配、代碼沒有寫在一個方法中、少分號、變量名不對、少半個大括號 ... 總之就…