版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Windows消息機制的應用使用自己編寫的程序,通過向其它程序發(fā)送Windows消息,從而達到控制該程序的目的Windows消息機制的應用使用自己編寫的程序,通過向其它程1相關(guān)知識:Windows消息機制簡述Windows操作系統(tǒng)是基于消息(Message)驅(qū)動系統(tǒng),Windows消息提供了應用程序與應用程序之間、應用程序與Windows系統(tǒng)之間進行通訊的手段。應用程序要實現(xiàn)的功能由消息來觸發(fā),并靠對消息的響應和處理來完成。
相關(guān)知識:Windows消息機制簡述Windows操作系統(tǒng)是2相關(guān)知識:Windows消息機制簡述從消息的產(chǎn)生到消息被一個窗口響應,要經(jīng)歷4個步驟:系統(tǒng)中發(fā)生了某個事件。WINDOWS把這個事件翻譯成消息,然后把它先放到系統(tǒng)消息隊列中,然后分發(fā)到各應用程序的應用程序消息隊列中。應用程序從消息隊列中把這個消息傳遞給一個適當?shù)拇翱谶^程。窗口過程響應這個消息并進行處理。相關(guān)知識:Windows消息機制簡述從消息的產(chǎn)生到消息被一3相關(guān)知識:Windows消息機制簡述例如:打開記事本程序,該程序有一個File菜單,如果用戶單擊了File菜單里New命令時,這個動作將被Windows(而不是應用程序本身?。┧东@,Windows經(jīng)過分析得知這個動作應該由上面所說的那個應用程序去處理,既然是這樣,Windows就發(fā)送了個叫做WM_COMMAND的消息給應用程序,該消息所包含的信息告訴應用程序:"用戶單擊了New菜單",應用程序得知這一消息之后,采取相應的動作來響應它,這個過程稱為消息處理。相關(guān)知識:Windows消息機制簡述例如:打開記事本程序,4相關(guān)知識:獲取窗口句柄的的API函數(shù)FindWindow函數(shù):通過指定應用程序頂層主窗口的類名和標題名,返回它的句柄。參數(shù)說明HWNDFindWindow(LPCTSTRlpClassName, //窗口所屬的類的名稱LPCTSTRlpWindowName);//窗口的標題函數(shù)返回值如果查到該窗口,則返回它的句柄。相關(guān)知識:獲取窗口句柄的的API函數(shù)FindWindow函5相關(guān)知識:獲取窗口句柄的的API函數(shù)FindWindowEx函數(shù):查找指定應用程序頂層主窗口中的子窗口的句柄。參數(shù)說明HWNDFindWindowEx(HWNDhwndParent,//要查找的子窗口所在的父窗口的句柄HWNDhwndChildAfter,//子窗口的句柄LPCTSTRlpszClass, //子窗口的類名LPCTSTRlpszWindow);//子窗口的標題名
函數(shù)返回值如果查到該子窗口,則返回它的句柄。相關(guān)知識:獲取窗口句柄的的API函數(shù)FindWindowEx6相關(guān)知識:發(fā)送Windows消息的API函數(shù)PostMessage函數(shù):向指定的窗口發(fā)送Windows消息,不等待線程處理消息就返回。參數(shù)說明BOOLPostMessage(HWNDhWnd, //目標窗口的句柄UINTMsg, //指定被發(fā)送的消息
WPARAMwParam,//指定附加的消息的第一個參數(shù)LPARAMlParam);//指定附加的消息的第二個參數(shù)函數(shù)返回值如果函數(shù)調(diào)用成功,返回非零值:如果函數(shù)調(diào)用失敗,返回值是零。相關(guān)知識:發(fā)送Windows消息的API函數(shù)PostMess7相關(guān)知識:發(fā)送Windows消息的API函數(shù)SendMessage函數(shù):向指定的窗口發(fā)送Windows消息,直到窗口程序處理完消息再返回。參數(shù)說明LRESULT
SendMessage(HWNDhWnd, //目標窗口的句柄UINTMsg, //指定被發(fā)送的消息
WPARAMwParam,//指定附加的消息的第一個參數(shù)LPARAMlParam);//指定附加的消息的第二個參數(shù)函數(shù)返回值
返回值指定消息處理的結(jié)果,依賴于所發(fā)送的消息。
相關(guān)知識:發(fā)送Windows消息的API函數(shù)SendMess8實驗設計和步驟運行Delphi7,利用File菜單下的“New-Application”新建一個工程;在D盤下新建一個文件夾(以自己名字命名),把工程文件以“MessageExam.dpr”為文件名保存到該文件夾中;把單元文件以“Ctrl_Unit.pas”為文件名也保存到該文件夾中;在窗體上,設計出如下圖所示的程序界面;實驗設計和步驟運行Delphi7,利用File菜單下的“Ne9實驗設計和步驟實驗設計和步驟10實驗設計和步驟把文本框中的內(nèi)容發(fā)送到“記事本”程序的文本框中
操作步驟:打開附件中的“記事本”程序,使用Spy++小工具查找“記事本”程序主窗口的標題名和窗口類名。實驗設計和步驟把文本框中的內(nèi)容發(fā)送到“記事本”程序的文本框中11實驗設計和步驟根據(jù)找到的“記事本”程序主窗口的標題名和窗口類名使用函數(shù)FindWindow獲取其句柄。//函數(shù)參數(shù)意義(參數(shù)1:窗口所屬的類名;參數(shù)2:窗口的標題名;)h:=FindWindow('Notepad','無標題-記事本');//查找"記事本"父窗口的句柄實驗設計和步驟//函數(shù)參數(shù)意義(參數(shù)1:窗口所屬的類名;12實驗設計和步驟使用Spy++工具查找“記事本”程序子窗口的標題名和窗口類名。實驗設計和步驟使用Spy++工具查找“記事本”程序子窗口的標13實驗設計和步驟根據(jù)找到的“記事本”程序主窗口句柄,再使用函數(shù)FindWindowEx獲取主窗口中的子窗口的句柄。//函數(shù)參數(shù)意義(參數(shù)1:子窗口所在父窗口的句柄;參數(shù)2:子窗口的句柄;//參數(shù)3:子窗口的標題名)
h1:=FindWindowEx(h,0,'Edit',nil);//查找"記事本"子窗口(文本框)的句柄注意:其中h為父窗口的句柄,子窗口句柄為0表示搜索所有的子窗口,子窗口標題不知道就使用nil。實驗設計和步驟根據(jù)找到的“記事本”程序主窗口句柄,再使用函數(shù)14實驗設計和步驟雙擊“發(fā)送文本到記事本中”按鈕,在生成的單擊響應事件過程中,編寫代碼:實驗設計和步驟雙擊“發(fā)送文本到記事本中”按鈕,在生成的單擊響15實驗設計和步驟獲取另外一個程序的登錄窗口文本框中的內(nèi)容
操作步驟:打開文件夾中的“用戶登錄”程序,使用Spy++小工具查找“程序主窗口的標題名和窗口類名。實驗設計和步驟獲取另外一個程序的登錄窗口文本框中的內(nèi)容16實驗設計和步驟根據(jù)找到的程序主窗口的標題名和窗口類名使用函數(shù)FindWindow獲取其句柄。//函數(shù)參數(shù)意義(參數(shù)1:窗口所屬的類名;參數(shù)2:窗口的標題名;)h:=findwindow('TForm2','用戶登錄');實驗設計和步驟根據(jù)找到的程序主窗口的標題名和窗口類名使用函數(shù)17實驗設計和步驟使用Spy++工具查找用戶登錄程序子窗口(編輯框)的標題名或窗口類名。實驗設計和步驟使用Spy++工具查找用戶登錄程序子窗口(編輯18實驗設計和步驟根據(jù)找到程序主窗口句柄,再使用函數(shù)FindWindowEx獲取主窗口中的子窗口(文本框)的句柄。//函數(shù)參數(shù)意義(參數(shù)1:子窗口所在父窗口的句柄;參數(shù)2:子窗口的句柄;//參數(shù)3:子窗口的標題名)
h1:=FindWindowEx(h,0,'TEdit',nil);注意:其中h為父窗口的句柄,子窗口句柄為0表示搜索所有的子窗口,子窗口標題不知道就使用nil。實驗設計和步驟根據(jù)找到程序主窗口句柄,再使用函數(shù)FindWi19實驗設計和步驟雙擊“獲取密碼框中的文本”按鈕,在生成的單擊響應事件過程中,編寫代碼:實驗設計和步驟雙擊“獲取密碼框中的文本”按鈕,在生成的單擊響20實驗設計和步驟監(jiān)控QQ窗口的運行,一旦發(fā)現(xiàn),就關(guān)閉它。
操作步驟:打開“QQ”程序,使用Spy++小工具查找“程序主窗口的標題名和窗口類名。實驗設計和步驟監(jiān)控QQ窗口的運行,一旦發(fā)現(xiàn),就關(guān)閉它。21實驗設計和步驟根據(jù)找到的程序主窗口的標題名或窗口類名使用函數(shù)FindWindow獲取其句柄。//函數(shù)參數(shù)意義(參數(shù)1:窗口所屬的類名;參數(shù)2:窗口的標題名;)h:=findwindow('#32770',nil);//查找qq的父窗口實驗設計和步驟根據(jù)找到的程序主窗口的標題名或窗口類名使用函數(shù)22實驗設計和步驟設置一個定時器timer組件,當“監(jiān)控QQ窗口啟動,并關(guān)閉”按鈕按下以后,便開始計時,按照設定的時間間隔去查找QQ是否啟動,一旦啟動,便向其發(fā)送關(guān)閉消息關(guān)閉它。雙擊“監(jiān)控QQ窗口啟動,并關(guān)閉”按鈕,在生成的單擊響應事件過程中,編寫代碼:實驗設計和步驟設置一個定時器timer組件,當“監(jiān)控QQ窗口23實驗設計和步驟雙擊Timer1組件,在生成的定時時間
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《獸藥GMP證書》和《獸藥生產(chǎn)許可證》
- 零售業(yè)文化營銷策略考核試卷
- 鞋類行業(yè)市場動態(tài)與競爭態(tài)勢考核試卷
- 回醫(yī)學中的火紅熱療療法
- 高速鐵路乘車指引與旅客便利性考核試卷
- 魚油提取技術(shù)國際發(fā)展趨勢考核試卷
- 回醫(yī)學中的藥物療法
- 自來水的水質(zhì)管理與監(jiān)控考核試卷
- 隧道工程的生態(tài)智慧城市設計策略考核試卷
- 面向未來的廣告營銷考核試卷
- 河北省百師聯(lián)盟2023-2024學年高二上學期期末大聯(lián)考歷史試題(解析版)
- 2021年四川省涼山州九年級中考適應性考試理科綜合(試卷)
- 骨科疼痛的評估及護理
- 【MOOC】概率論與數(shù)理統(tǒng)計-南京郵電大學 中國大學慕課MOOC答案
- 2024年度軟件開發(fā)分包合同技術(shù)要求與交底2篇
- 居家養(yǎng)老人員培訓管理制度
- 抗菌藥物的合理應用培訓
- 初三數(shù)學老師家長會發(fā)言稿
- 湖北第二師范學院《操作系統(tǒng)》2023-2024學年期末試卷
- 2021-2022學年河北省唐山市高一上學期期末語文試題
- 舒適化醫(yī)療麻醉
評論
0/150
提交評論