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

首頁 > 編程 > Delphi > 正文

Delphi實現獲取句柄并發送消息的方法

2020-01-31 20:50:58
字體:
來源:轉載
供稿:網友

本文以實例形式詳細說明了Delphi獲取句柄并發送消息的方法,具體用法說明如下:

查找另外一個窗口的句柄:

handle := FindWindow(nil,PChar('窗口的標題'));//查到窗體句柄

查找子窗體:

childHandle := FindWindowEx(handle,0,'子窗體類','子窗體標題'); 

另外有個枚舉子窗體的API,

EnumChildWindows(主創體句柄,@回調函數,用戶參數);

用這個函數需要自己寫一個回調的函數,比如:

function EnumChildProc(ahWND:HWND; param:LPARAM):boolean; stdcall;sendmessage(handle,message,wl,rl)
unit Unit1; interface uses Windows,Messages,Tlhelp32,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;type TForm1=class(TForm)procedure FormCreate(Sender: TObject); private {Private declarations}  public  {Public declarations} end; var Form1: TForm1;implementation{ $R *.DFM}procedure TForm1.FormCreate(Sender: TObject);var a,b:PAnsiChar;h:HWND;beginh:= FindWindow(nil,'abc.txt - 記事本');h:= FindWindowEx(h,0,'edit',nil);SendMessage(h,WM_SETTEXT,255,Integer(PChar('我來測度了')));ShowMessage( IntToStr(h));end;
SendMessage(TreeView.Handle,TVM_SETBKCOLOR,0,RGB(255,0,0)); 設置TV背景顏色SendMessage(Button.Handle,WM_LBUTTONDOWN,0,0);  鼠標左鍵按下SendMessage(Button.Handle,WM_LBUTTONUP,0,0);   鼠標左鍵抬起SendMessage(Edit.Handle,WM_SETTEXT,255,Integer(PChar('abc'))); 傳遞文本SendMessage(Edit.Handle,WM_Char,Wparam('Q'),2);  傳遞字符SendMessage(Button.Handle,BM_SETSTYLE,BS_RADIOBUTTON,1);  改變Button風格SendMessage(ComboBox.Handle,CB_SETDropPEDWIDTH,300,0);  改變CBDownWidth

WM_CUT、WM_COPY和WM_PASTE  剪切,復制,粘帖

實現任意組合鍵:

keybd_event(VK_Control, MapVirtualKey(VK_Control, 0), 0, 0);keybd_event(ord('V'), MapVirtualKey(ord('V'), 0), 0, 0);keybd_event(ord('V'), MapVirtualKey(ord('V'), 0), KEYEVENTF_KEYUP, 0);keybd_event(VK_Control, MapVirtualKey(VK_Control, 0), KEYEVENTF_KEYUP, 0);

SendMessageA說明: 調用一個窗口的窗口函數,將一條消息發給那個窗口。除非消息處理完畢,否則該函數不會返回

SendMessage所包含4個參數:   
1. hwnd 32位的窗口句柄窗口可以是任何類型的屏幕對象,因為Win32能夠維護大多數可視對象的句柄
2. wMsg 用于區別其他消息的常量值,這些常量可以是Windows單元中預定義的常量,也可以是自定義的常量
3. wParam 通常是一個與消息有關的常量值,也可能是窗口或控件的句柄
4. lParam 通常是一個指向內存中數據的指針。由于WParm、lParam和Pointer都是32位的,因此,它們之間可以相互轉換

wMsg函數詳細說明: 

★WM_Create 創建一個窗口
★WM_DESTROY 當一個窗口被破壞時發送
★WM_MOVE 移動一個窗口
★WM_SIZE 改變一個窗口的大小
★WM_ACTIVATE 一個窗口被激活或失去激活狀態
★WM_SETFOCUS 一個窗口獲得焦點
★WM_KILLFOCUS 一個窗口失去焦點
★WM_ENABLE 一個窗口改變成Enable狀態
★WM_SETREDRAW 設置窗口是否能重畫
★WM_SETTEXT 應用程序發送此消息來設置一個窗口的文本
★WM_GETTEXT 應用程序發送此消息來復制對應窗口的文本到緩沖區
★WM_GETTEXTLENGTH 得到與一個窗口有關的文本的長度(不包含空字符)
★WM_PAINT 要求一個窗口重畫自己
★WM_CLOSE 當一個窗口或應用程序要關閉時發送一個信號
★WM_QUERYENDSESSION 用戶選擇結束對話框或程序自己調用ExitWindows函數
★WM_QUIT 用來結束程序運行
★WM_QUERYOPEN 用戶窗口恢復以前的大小位置時,把此消息發送給某個圖標
★WM_ERASEBKGND 當窗口背景必須被擦除時(例在窗口改變大小時)
★WM_SYSCOLORCHANGE 當系統顏色改變時,發送此消息給所有頂級窗口
★WM_QUERYENDSESSION 消息后,此消息發送給應用程序,通知它對話是否結束
★WM_SHOWWINDOW 當隱藏或顯示窗口是發送此消息給這個窗口
★WM_ACTIVATEAPP 發此消息給應用程序哪個窗口是激活的,哪個是非激活的   
★WM_FONTCHANGE 當系統的字體資源庫變化時發送此消息給所有頂級窗口
★WM_TIMECHANGE 當系統的時間變化時發送此消息給所有頂級窗口
★WM_CANCELMODE 發送此消息來取消某種正在進行的摸態(操作)
★WM_SETCURSOR 如果鼠標引起光標在某個窗口中移動
★WM_ENDSESSION 當系統進程發出且鼠標輸入沒有被捕獲時,就發消息給某個窗口
★WM_MOUSEACTIVATE 當光標在某個非激活的窗口中而用戶正按著鼠標的某個鍵發送此消息給當前窗口
★WM_CHILDACTIVATE 送此消息給MDI子窗口當用戶點擊此窗口的標題欄,或當窗口被激活,移動,改變大小
★WM_QUEUESYNC 此消息由基于計算機的訓練程序發送,通過 WH_JOURNALPALYBACK的hook程序分離出用戶輸入消息
★WM_GETMINMAXINFO 此消息發送給窗口當它將要改變大小或位置   
★WM_PAINTICON 發送給最小化窗口當它圖標將要被重畫
★WM_ICONERASEBKGND 此消息發送給某個最小化窗口,僅當它在畫圖標前它的背景必須被重畫
★WM_NEXTDLGCT★發送此消息給一個對話框程序去更改焦點位置
★WM_SPOOLERSTATUS 每當打印管理列隊增加或減少一條作業時發出此消息   
★WM_DRAWITEM 當button,combobox,listbox,menu的可視外觀改變時發送
★WM_MEASUREITEM 當button, combobox, listbox, listview control, or menuitem 被創建時
★WM_VKEYTOITEM 此消息有一個LBS_WANTKEYBOARDINPUT風格的發出給它的所有者來響應WM_KEYDOWN消息   
★WM_CHARTOITEM 此消息由一個LBS_WANTKEYBOARDINPUT風格的列表框發送給他的所有者來響應WM_CHAR消息   
★WM_SETFONT 當繪制文本時程序發送此消息得到控件要用的顏色
★WM_GETFONT 應用程序發送此消息得到當前控件繪制文本的字體
★WM_SETHOTKEY 應用程序發送此消息讓一個窗口與一個熱鍵相關連
★WM_GETHOTKEY 應用程序發送此消息來判斷熱鍵與某個窗口是否有關聯
★WM_QUERYDRAGICON 此消息發送給最小化窗口,當此窗口將要被拖放而它的類中沒有定義圖標,應用程序能返回一個圖標或光標的句柄,當用戶拖放圖標時系統顯示這個圖標或光標
★WM_COMPAREITEM 發送此消息來判定combobox或listbox新增加的項的相對位置
★WM_COMPACTING 顯示內存已經很少了
★WM_WINDOWPOSCHANGING 發送此消息給那個窗口的大小和位置將要被改變時,來調用setwindowpos函數或其它窗口管理函數
★WM_WINDOWPOSCHANGED 發送此消息給那個窗口的大小和位置已經被改變時,來調用setwindowpos函數或其它窗口管理函數
★WM_POWER 當系統將要進入暫停狀態時發送此消息
★WM_COPYDATA 當一個應用程序傳遞數據給另一個應用程序時發送此消息
★WM_CANCELJOURNA 當某個用戶取消程序日志激活狀態,提交此消息給程序
★WM_NOTIFY 當某個控件的某個事件已經發生或這個控件需要得到一些信息時,發送此消息給它的父窗口   
★WM_INPUTLANGCHANGEREQUEST 當用戶選擇某種輸入語言,或輸入語言的熱鍵改變
★WM_INPUTLANGCHANGE 當平臺現場已經被改變后發送此消息給受影響的最頂級窗口
★WM_TCARD 當程序已經初始化windows幫助例程時發送此消息給應用程序
★WM_HELP 此消息顯示用戶按下了F1,如果某個菜單是激活的,就發送此消息個此窗口關聯的菜單,否則就發送給有焦點的窗口,如果當前都沒有焦點,就把此消息發送給當前激活的窗口
★WM_USERCHANGED 當用戶已經登入或退出后發送此消息給所有的窗口,當用戶登入或退出時系統更新用戶的具體設置信息,在用戶更新設置時系統馬上發送此消息
★WM_NOTIFYFORMAT 公用控件,自定義控件和他們的父窗口通過此消息來判斷控件是使用ANSI還是UNICODE結構

function EnumChildWindowsProc(hwnd, lparam: Integer): Boolean;    var   buffer: array[0..255] of char;    begin   Result := True;   GetClassName(hwnd,buffer,256);   if StrPas(Buffer)='Edit' then   begin   SendMessage(hwnd,WM_GETTEXT,256,lparam);   Result:=False;   end;    end;      procedure TForm1.Button1Click(Sender: TObject);    var   hwnd: Integer;   buffer: array[0..255] of char;    Begin   hwnd := FindWindow('CabinetWClass',nil);   if hwnd<> 0 then   begin   EnumChildWindows(hwnd,@EnumChildWindowsProc,Longint(@buffer[0]));   Caption := StrPas(buffer);   end;    end;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲色图在线观看| 成人午夜两性视频| 国产精品久久久久久av| 久久亚洲精品网站| 国产日韩欧美夫妻视频在线观看| 欧美三级免费观看| 国产精品九九久久久久久久| 96精品久久久久中文字幕| 麻豆一区二区在线观看| 欧美成人免费小视频| 国产在线精品成人一区二区三区| 日韩欧美大尺度| 国产精品96久久久久久又黄又硬| 国产一区二区三区欧美| 日韩高清电影免费观看完整| 国产成人精品综合久久久| 热re91久久精品国99热蜜臀| 国产视频精品va久久久久久| 操人视频在线观看欧美| 北条麻妃在线一区二区| 亚洲香蕉成人av网站在线观看| 国产97在线|亚洲| 国产精品激情av电影在线观看| 亚洲欧美成人在线| 久久av在线播放| 欧美电影免费播放| 中文字幕亚洲字幕| 国产精品久久久久久五月尺| 久久久久免费视频| 久久久在线观看| 久久精品一区中文字幕| 日韩欧美一区二区在线| 亚洲精品久久7777777| 国产欧美日韩丝袜精品一区| 欧美久久精品午夜青青大伊人| 国产在线观看精品| 久久久久999| 亚洲综合成人婷婷小说| 成人精品久久av网站| 国产成人精品日本亚洲| 成人亲热视频网站| 亚洲一区亚洲二区| 久久99久久99精品免观看粉嫩| 日韩中文字幕欧美| 亚洲成人免费网站| 久久在线免费观看视频| 亚洲精品mp4| 日韩欧美aaa| 亚洲精品美女在线观看播放| 国产精品视频公开费视频| 久久久久久亚洲精品中文字幕| 成人精品福利视频| 福利视频第一区| 国产精品三级在线| 欧美日韩第一页| 成人激情视频免费在线| 亚洲激情免费观看| 亚洲丝袜一区在线| 91在线免费看网站| 亚洲欧洲日产国产网站| 亚洲第一天堂无码专区| 亚洲欧美日韩直播| 日本一欧美一欧美一亚洲视频| 欧美日韩国产限制| 九九热精品在线| 色综合视频网站| 亚洲美女自拍视频| 美女久久久久久久久久久| 国产成人小视频在线观看| 欧美日本高清视频| 91美女高潮出水| 亚洲精品视频免费| 2019精品视频| 欧美成人免费全部| 亚洲国产成人在线视频| 91精品视频在线| 亚洲自拍偷拍色片视频| 久久久久久成人| 91精品视频播放| 色黄久久久久久| 久久久国产一区二区三区| 欧美成人亚洲成人日韩成人| 永久免费看mv网站入口亚洲| 欧美高清性猛交| 狠狠躁18三区二区一区| 日韩中文字幕在线看| 亚洲视频日韩精品| 91免费国产视频| 欧美午夜丰满在线18影院| 岛国视频午夜一区免费在线观看| 91午夜理伦私人影院| 亚洲毛片在线免费观看| 国产精品一区二区三区在线播放| 久久久亚洲成人| 欧美日韩综合视频网址| 久久精品国产一区二区三区| 亚洲一级片在线看| 日韩视频精品在线| 国产精品揄拍一区二区| 久久久久久久亚洲精品| 欧美精品videossex88| 久久国产加勒比精品无码| 久久久久久国产精品| 午夜精品免费视频| 国产午夜精品免费一区二区三区| 精品久久久久国产| 黑人与娇小精品av专区| 97精品国产97久久久久久| 欧美国产日韩一区二区三区| 黑人巨大精品欧美一区二区| 国产亚洲aⅴaaaaaa毛片| 久久精品精品电影网| 国产亚洲xxx| 97精品免费视频| 日本久久久久久久久| 亚洲综合在线小说| 国产精品丝袜久久久久久不卡| 秋霞成人午夜鲁丝一区二区三区| 91久久久亚洲精品| 亚洲精品一区av在线播放| 日韩电影大全免费观看2023年上| 91成人福利在线| 91精品久久久久久久久青青| 欧美成人免费va影院高清| 国产精品成久久久久三级| 亚洲第一福利视频| 成人免费视频网| 狠狠色狠狠色综合日日小说| 国产在线一区二区三区| 91精品久久久久久| 国产精品欧美在线| 国产aⅴ夜夜欢一区二区三区| 黄色一区二区在线观看| 国产精品自拍偷拍视频| 亚洲第一精品久久忘忧草社区| 日韩欧美a级成人黄色| 欧美肥婆姓交大片| 国产精品成人一区二区三区吃奶| 久久久精品视频在线观看| 国产91精品久久久| 久久99视频精品| 91麻豆国产语对白在线观看| 国产精品丝袜视频| 亚洲欧洲黄色网| 中文字幕久热精品视频在线| 一区二区三区视频免费在线观看| 精品国产福利在线| 成人美女av在线直播| 91精品国产免费久久久久久| 欧美日韩成人在线视频| 欧美性xxxx极品hd欧美风情| 国产精品福利网站| 日韩中文字幕视频在线观看| 亚洲精品国产精品久久清纯直播| 中文字幕亚洲国产| 伊人伊成久久人综合网小说| 久久久精品中文字幕| 成人欧美一区二区三区黑人| 色综合久久88| 亚洲最新av在线| 欧美—级高清免费播放| 日韩成人网免费视频| 欧美肥婆姓交大片| 国产精品电影一区|