




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Windows消息機制的應用使用自己編寫的程序,通過向其它程序發(fā)送Windows消息,從而達到控制該程序的目的Windows消息機制的應用使用自己編寫的程序,通過向其它程1相關知識:Windows消息機制簡述Windows操作系統(tǒng)是基于消息(Message)驅(qū)動系統(tǒng),Windows消息提供了應用程序與應用程序之間、應用程序與Windows系統(tǒng)之間進行通訊的手段。應用程序要實現(xiàn)的功能由消息來觸發(fā),并靠對消息的響應和處理來完成。
相關知識:Windows消息機制簡述Windows操作系統(tǒng)是2相關知識:Windows消息機制簡述從消息的產(chǎn)生到消息被一個窗口響應,要經(jīng)歷4個步驟:系統(tǒng)中發(fā)生了某個事件。WINDOWS把這個事件翻譯成消息,然后把它先放到系統(tǒng)消息隊列中,然后分發(fā)到各應用程序的應用程序消息隊列中。應用程序從消息隊列中把這個消息傳遞給一個適當?shù)拇翱谶^程。窗口過程響應這個消息并進行處理。相關知識:Windows消息機制簡述從消息的產(chǎn)生到消息被一3相關知識:Windows消息機制簡述例如:打開記事本程序,該程序有一個File菜單,如果用戶單擊了File菜單里New命令時,這個動作將被Windows(而不是應用程序本身?。┧东@,Windows經(jīng)過分析得知這個動作應該由上面所說的那個應用程序去處理,既然是這樣,Windows就發(fā)送了個叫做WM_COMMAND的消息給應用程序,該消息所包含的信息告訴應用程序:"用戶單擊了New菜單",應用程序得知這一消息之后,采取相應的動作來響應它,這個過程稱為消息處理。相關知識:Windows消息機制簡述例如:打開記事本程序,4相關知識:獲取窗口句柄的的API函數(shù)FindWindow函數(shù):通過指定應用程序頂層主窗口的類名和標題名,返回它的句柄。參數(shù)說明HWNDFindWindow(LPCTSTRlpClassName, //窗口所屬的類的名稱LPCTSTRlpWindowName);//窗口的標題函數(shù)返回值如果查到該窗口,則返回它的句柄。相關知識:獲取窗口句柄的的API函數(shù)FindWindow函5相關知識:獲取窗口句柄的的API函數(shù)FindWindowEx函數(shù):查找指定應用程序頂層主窗口中的子窗口的句柄。參數(shù)說明HWNDFindWindowEx(HWNDhwndParent,//要查找的子窗口所在的父窗口的句柄HWNDhwndChildAfter,//子窗口的句柄LPCTSTRlpszClass, //子窗口的類名LPCTSTRlpszWindow);//子窗口的標題名
函數(shù)返回值如果查到該子窗口,則返回它的句柄。相關知識:獲取窗口句柄的的API函數(shù)FindWindowEx6相關知識:發(fā)送Windows消息的API函數(shù)PostMessage函數(shù):向指定的窗口發(fā)送Windows消息,不等待線程處理消息就返回。參數(shù)說明BOOLPostMessage(HWNDhWnd, //目標窗口的句柄UINTMsg, //指定被發(fā)送的消息
WPARAMwParam,//指定附加的消息的第一個參數(shù)LPARAMlParam);//指定附加的消息的第二個參數(shù)函數(shù)返回值如果函數(shù)調(diào)用成功,返回非零值:如果函數(shù)調(diào)用失敗,返回值是零。相關知識:發(fā)送Windows消息的API函數(shù)PostMess7相關知識:發(fā)送Windows消息的API函數(shù)SendMessage函數(shù):向指定的窗口發(fā)送Windows消息,直到窗口程序處理完消息再返回。參數(shù)說明LRESULT
SendMessage(HWNDhWnd, //目標窗口的句柄UINTMsg, //指定被發(fā)送的消息
WPARAMwParam,//指定附加的消息的第一個參數(shù)LPARAMlParam);//指定附加的消息的第二個參數(shù)函數(shù)返回值
返回值指定消息處理的結(jié)果,依賴于所發(fā)送的消息。
相關知識:發(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),就關閉它。
操作步驟:打開“QQ”程序,使用Spy++小工具查找“程序主窗口的標題名和窗口類名。實驗設計和步驟監(jiān)控QQ窗口的運行,一旦發(fā)現(xiàn),就關閉它。21實驗設計和步驟根據(jù)找到的程序主窗口的標題名或窗口類名使用函數(shù)FindWindow獲取其句柄。//函數(shù)參數(shù)意義(參數(shù)1:窗口所屬的類名;參數(shù)2:窗口的標題名;)h:=findwindow('#32770',nil);//查找qq的父窗口實驗設計和步驟根據(jù)找到的程序主窗口的標題名或窗口類名使用函數(shù)22實驗設計和步驟設置一個定時器timer組件,當“監(jiān)控QQ窗口啟動,并關閉”按鈕按下以后,便開始計時,按照設定的時間間隔去查找QQ是否啟動,一旦啟動,便向其發(fā)送關閉消息關閉它。雙擊“監(jiān)控QQ窗口啟動,并關閉”按鈕,在生成的單擊響應事件過程中,編寫代碼:實驗設計和步驟設置一個定時器timer組件,當“監(jiān)控QQ窗口23實驗設計和步驟雙擊Timer1組件,在生成的定時時間到響應事件過程中,編寫代碼:實驗設計和步驟雙擊Timer1組件,在生成的定時時間到響應事24實驗設計和步驟請同學們參照上面的方法,通過向“用戶登錄”窗口的”登錄”按鈕發(fā)送“單擊”的Windows消息,使其產(chǎn)生單擊動作。程序代碼如下:實驗設計和步驟請同學們參照上面的方法,通過向“用戶登錄”窗口25有興趣的同學可以參照上面的例子,控制其它程序看看。有興趣的同學可以參照上面的例子,控制其它程序看看。26Windows消息機制的應用使用自己編寫的程序,通過向其它程序發(fā)送Windows消息,從而達到控制該程序的目的Windows消息機制的應用使用自己編寫的程序,通過向其它程27相關知識:Windows消息機制簡述Windows操作系統(tǒng)是基于消息(Message)驅(qū)動系統(tǒng),Windows消息提供了應用程序與應用程序之間、應用程序與Windows系統(tǒng)之間進行通訊的手段。應用程序要實現(xiàn)的功能由消息來觸發(fā),并靠對消息的響應和處理來完成。
相關知識:Windows消息機制簡述Windows操作系統(tǒng)是28相關知識:Windows消息機制簡述從消息的產(chǎn)生到消息被一個窗口響應,要經(jīng)歷4個步驟:系統(tǒng)中發(fā)生了某個事件。WINDOWS把這個事件翻譯成消息,然后把它先放到系統(tǒng)消息隊列中,然后分發(fā)到各應用程序的應用程序消息隊列中。應用程序從消息隊列中把這個消息傳遞給一個適當?shù)拇翱谶^程。窗口過程響應這個消息并進行處理。相關知識:Windows消息機制簡述從消息的產(chǎn)生到消息被一29相關知識:Windows消息機制簡述例如:打開記事本程序,該程序有一個File菜單,如果用戶單擊了File菜單里New命令時,這個動作將被Windows(而不是應用程序本身?。┧东@,Windows經(jīng)過分析得知這個動作應該由上面所說的那個應用程序去處理,既然是這樣,Windows就發(fā)送了個叫做WM_COMMAND的消息給應用程序,該消息所包含的信息告訴應用程序:"用戶單擊了New菜單",應用程序得知這一消息之后,采取相應的動作來響應它,這個過程稱為消息處理。相關知識:Windows消息機制簡述例如:打開記事本程序,30相關知識:獲取窗口句柄的的API函數(shù)FindWindow函數(shù):通過指定應用程序頂層主窗口的類名和標題名,返回它的句柄。參數(shù)說明HWNDFindWindow(LPCTSTRlpClassName, //窗口所屬的類的名稱LPCTSTRlpWindowName);//窗口的標題函數(shù)返回值如果查到該窗口,則返回它的句柄。相關知識:獲取窗口句柄的的API函數(shù)FindWindow函31相關知識:獲取窗口句柄的的API函數(shù)FindWindowEx函數(shù):查找指定應用程序頂層主窗口中的子窗口的句柄。參數(shù)說明HWNDFindWindowEx(HWNDhwndParent,//要查找的子窗口所在的父窗口的句柄HWNDhwndChildAfter,//子窗口的句柄LPCTSTRlpszClass, //子窗口的類名LPCTSTRlpszWindow);//子窗口的標題名
函數(shù)返回值如果查到該子窗口,則返回它的句柄。相關知識:獲取窗口句柄的的API函數(shù)FindWindowEx32相關知識:發(fā)送Windows消息的API函數(shù)PostMessage函數(shù):向指定的窗口發(fā)送Windows消息,不等待線程處理消息就返回。參數(shù)說明BOOLPostMessage(HWNDhWnd, //目標窗口的句柄UINTMsg, //指定被發(fā)送的消息
WPARAMwParam,//指定附加的消息的第一個參數(shù)LPARAMlParam);//指定附加的消息的第二個參數(shù)函數(shù)返回值如果函數(shù)調(diào)用成功,返回非零值:如果函數(shù)調(diào)用失敗,返回值是零。相關知識:發(fā)送Windows消息的API函數(shù)PostMess33相關知識:發(fā)送Windows消息的API函數(shù)SendMessage函數(shù):向指定的窗口發(fā)送Windows消息,直到窗口程序處理完消息再返回。參數(shù)說明LRESULT
SendMessage(HWNDhWnd, //目標窗口的句柄UINTMsg, //指定被發(fā)送的消息
WPARAMwParam,//指定附加的消息的第一個參數(shù)LPARAMlParam);//指定附加的消息的第二個參數(shù)函數(shù)返回值
返回值指定消息處理的結(jié)果,依賴于所發(fā)送的消息。
相關知識:發(fā)送Windows消息的API函數(shù)SendMess34實驗設計和步驟運行Delphi7,利用File菜單下的“New-Application”新建一個工程;在D盤下新建一個文件夾(以自己名字命名),把工程文件以“MessageExam.dpr”為文件名保存到該文件夾中;把單元文件以“Ctrl_Unit.pas”為文件名也保存到該文件夾中;在窗體上,設計出如下圖所示的程序界面;實驗設計和步驟運行Delphi7,利用File菜單下的“Ne35實驗設計和步驟實驗設計和步驟36實驗設計和步驟把文本框中的內(nèi)容發(fā)送到“記事本”程序的文本框中
操作步驟:打開附件中的“記事本”程序,使用Spy++小工具查找“記事本”程序主窗口的標題名和窗口類名。實驗設計和步驟把文本框中的內(nèi)容發(fā)送到“記事本”程序的文本框中37實驗設計和步驟根據(jù)找到的“記事本”程序主窗口的標題名和窗口類名使用函數(shù)FindWindow獲取其句柄。//函數(shù)參數(shù)意義(參數(shù)1:窗口所屬的類名;參數(shù)2:窗口的標題名;)h:=FindWindow('Notepad','無標題-記事本');//查找"記事本"父窗口的句柄實驗設計和步驟//函數(shù)參數(shù)意義(參數(shù)1:窗口所屬的類名;38實驗設計和步驟使用Spy++工具查找“記事本”程序子窗口的標題名和窗口類名。實驗設計和步驟使用Spy++工具查找“記事本”程序子窗口的標39實驗設計和步驟根據(jù)找到的“記事本”程序主窗口句柄,再使用函數(shù)FindWindowEx獲取主窗口中的子窗口的句柄。//函數(shù)參數(shù)意義(參數(shù)1:子窗口所在父窗口的句柄;參數(shù)2:子窗口的句柄;//參數(shù)3:子窗口的標題名)
h1:=FindWindowEx(h,0,'Edit',nil);//查找"記事本"子窗口(文本框)的句柄注意:其中h為父窗口的句柄,子窗口句柄為0表示搜索所有的子窗口,子窗口標題不知道就使用nil。實驗設計和步驟根據(jù)找到的“記事本”程序主窗口句柄,再使用函數(shù)40實驗設計和步驟雙擊“發(fā)送文本到記事本中”按鈕,在生成的單擊響應事件過程中,編寫代碼:實驗設計和步驟雙擊“發(fā)送文本到記事本中”按鈕,在生成的單擊響41實驗設計和步驟獲取另外一個程序的登錄窗口文本框中的內(nèi)容
操作步驟:打開文件夾中的“用戶登錄”程序,使用Spy++小工具查找“程序主窗口的標題名和窗口類名。實驗設計和步驟獲取另外一個程序的登錄窗口文本框中的內(nèi)容42實驗設計和步驟根據(jù)找到的程序主窗口的標題名和窗口類名使用函數(shù)FindWindow獲取其句柄。//函數(shù)參數(shù)意義(參數(shù)1:窗口所屬的類名;參數(shù)2:窗口的標題名;)h:=findwindow('TForm2','用戶登錄');實驗設計和步驟根據(jù)找到的程序主窗口的標題名和窗口類名使用函數(shù)43實驗設計和步驟使用Spy++工具查找用戶登錄程序子窗口(編輯框)的標題名或窗口類名。實驗設計和步驟使用Spy++工具查找用戶登錄程序子窗口(編輯44實驗設計和步驟根據(jù)找到程序主窗口句柄,再使用函數(shù)FindWindowEx獲取主窗口中的子窗口(文本框)的句柄。//函數(shù)參數(shù)意義(參數(shù)1:子窗口所在父窗口的句柄;參數(shù)2:子窗口的句柄;//參數(shù)3:子窗口的標題名)
h1:=FindWindowEx(h,0,'TEdit',nil);注意:其中h為父窗
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024西安市自來水有限公司招聘管理崗位綜合及擬初錄人員筆試參考題庫附帶答案詳解
- 精神病培訓總結(jié)及心得
- 溶洞申請報告書范文
- 浙江國企招聘2024金華市城市建設投資集團有限公司第二批社會招聘27人筆試參考題庫附帶答案詳解
- 2025年度電商電商平臺與物流配送技術合作協(xié)議
- 二零二五年度房屋租賃合同糾紛處理細則
- 2025年度新能源儲能項目借款連帶擔保人協(xié)議
- 二零二五年度金融機構間協(xié)議存款利率調(diào)整合同
- 二零二五年度光伏發(fā)電項目綠色認證合作框架協(xié)議
- 養(yǎng)老院老人二零二五年度外出旅游安全協(xié)議書
- 《人工授精雞》課件
- 內(nèi)蒙古自治區(qū)商品房買賣合同(現(xiàn)售)示范文本
- 《青少年抑郁癥的人際心理治療》黃滿麗
- 2022部編版道德與法治四年級下冊《我們的好朋友》教學設計
- 稅務會計崗位招聘面試題與參考回答2024年
- 心肺復蘇術課件2024新版
- 經(jīng)濟法學學習通超星期末考試答案章節(jié)答案2024年
- 道法滋養(yǎng)心靈+課件- 2024-2025學年統(tǒng)編版道德與法治七年級上冊
- 醫(yī)院培訓課件:《嚴重創(chuàng)傷快速轉(zhuǎn)診機制》
- 基于杜邦分析法的蔚來汽車經(jīng)營財務分析及建議
- 2024人教版初中數(shù)學新教材培訓心得體會
評論
0/150
提交評論