性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

米修兒
認(rèn)證:VIP會員
作者動態(tài)
Qml實(shí)現(xiàn)多語言切換
2024-01-24 16:34
C#轉(zhuǎn)C++(數(shù)組復(fù)制、char轉(zhuǎn)16位無符號整數(shù))
2023-08-15 17:06
C# 中 SendMessage 函數(shù)
2023-08-07 10:47
C#實(shí)現(xiàn)一個程序控制另一個程序
2023-08-02 18:57
c++ 引用和指針區(qū)別
2023-08-02 18:52

C# 中 SendMessage 函數(shù)

SendMessage:該函數(shù)將指定的消息發(fā)送到一個或多個窗口。此函數(shù)為指定的窗口調(diào)用窗口程序,直到窗口程序處理完消息再返回。該函數(shù)是應(yīng)用程序和應(yīng)用程序之間進(jìn)行消息傳遞的主要手段之一

函數(shù)原型:IntPtr SendMessage(int hWnd, int msg, IntPtr wParam, IntPtr lParam);

參數(shù)

hWnd:其窗口程序?qū)⒔邮障⒌拇翱诘木浔?。如果此參?shù)為HWND_BROADCAST,則消息將被發(fā)送到系統(tǒng)中所有頂層窗口,包括無效或不可見的非自身擁有的窗口、被覆蓋的窗口和彈出式窗口,但消息不被發(fā)送到子窗口

Msg:指定被發(fā)送的消息

wParam:指定附加的消息指定信息

IParam:指定附加的消息指定信息返回值:返回值指定消息處理的結(jié)果,依賴于所發(fā)送的消息

備注:需要用HWND_BROADCAST通信的應(yīng)用程序應(yīng)當(dāng)使用函數(shù)RegisterWindowMessage來為應(yīng)用程序間的通信取得一個唯一的消息。

示例:

const int BM_CLICK = 0xF5;
IntPtr maindHwnd = FindWindow(null, "QQ用戶登錄"); //獲得QQ登陸框的句柄 hovertree.com
if (maindHwnd != IntPtr.Zero)
{
    IntPtr childHwnd = FindWindowEx(maindHwnd, IntPtr.Zero, null, "登錄");   //獲得按鈕的句柄
    if (childHwnd != IntPtr.Zero)
    {
        SendMessage(childHwnd, BM_CLICK, 0, 0);     //發(fā)送點(diǎn)擊按鈕的消息
    }
    else
    {
        MessageBox.Show("沒有找到子窗口");
    }
}
else
{
    MessageBox.Show("沒有找到窗口");
}

wMsg常量值:

//創(chuàng)建一個窗口  
const int WM_CREATE = 0x01;  
//當(dāng)一個窗口被破壞時發(fā)送  
const int WM_DESTROY = 0x02;  
//移動一個窗口  
const int WM_MOVE = 0x03;  
//改變一個窗口的大小  
const int WM_SIZE = 0x05;  
//一個窗口被激活或失去激活狀態(tài)  
const int WM_ACTIVATE = 0x06;  
//一個窗口獲得焦點(diǎn)  
const int WM_SETFOCUS = 0x07;  
//一個窗口失去焦點(diǎn)  
const int WM_KILLFOCUS = 0x08;  
//一個窗口改變成Enable狀態(tài)  
const int WM_ENABLE = 0x0A;  
//設(shè)置窗口是否能重畫  
const int WM_SETREDRAW = 0x0B;  
//應(yīng)用程序發(fā)送此消息來設(shè)置一個窗口的文本  
const int WM_SETTEXT = 0x0C;  
//應(yīng)用程序發(fā)送此消息來復(fù)制對應(yīng)窗口的文本到緩沖區(qū)  
const int WM_GETTEXT = 0x0D;  
//得到與一個窗口有關(guān)的文本的長度(不包含空字符)  
const int WM_GETTEXTLENGTH = 0x0E;  
//要求一個窗口重畫自己  
const int WM_PAINT = 0x0F;  
//當(dāng)一個窗口或應(yīng)用程序要關(guān)閉時發(fā)送一個信號  
const int WM_CLOSE = 0x10;  
//當(dāng)用戶選擇結(jié)束對話框或程序自己調(diào)用ExitWindows函數(shù)  
const int WM_QUERYENDSESSION = 0x11;  
//用來結(jié)束程序運(yùn)行  
const int WM_QUIT = 0x12;  
//當(dāng)用戶窗口恢復(fù)以前的大小位置時,把此消息發(fā)送給某個圖標(biāo)  
const int WM_QUERYOPEN = 0x13;  
//當(dāng)窗口背景必須被擦除時(例在窗口改變大小時)  
const int WM_ERASEBKGND = 0x14;  
//當(dāng)系統(tǒng)顏色改變時,發(fā)送此消息給所有頂級窗口  
const int WM_SYSCOLORCHANGE = 0x15;  
//當(dāng)系統(tǒng)進(jìn)程發(fā)出WM_QUERYENDSESSION消息后,此消息發(fā)送給應(yīng)用程序,通知它對話是否結(jié)束  
const int WM_ENDSESSION = 0x16;  
//當(dāng)隱藏或顯示窗口是發(fā)送此消息給這個窗口  
const int WM_SHOWWINDOW = 0x18;  
//發(fā)此消息給應(yīng)用程序哪個窗口是激活的,哪個是非激活的  
const int WM_ACTIVATEAPP = 0x1C;  
//當(dāng)系統(tǒng)的字體資源庫變化時發(fā)送此消息給所有頂級窗口  
const int WM_FONTCHANGE = 0x1D;  
//當(dāng)系統(tǒng)的時間變化時發(fā)送此消息給所有頂級窗口  
const int WM_TIMECHANGE = 0x1E;  
//發(fā)送此消息來取消某種正在進(jìn)行的摸態(tài)(操作)  
const int WM_CANCELMODE = 0x1F;  
//如果鼠標(biāo)引起光標(biāo)在某個窗口中移動且鼠標(biāo)輸入沒有被捕獲時,就發(fā)消息給某個窗口  
const int WM_SETCURSOR = 0x20;  
//當(dāng)光標(biāo)在某個非激活的窗口中而用戶正按著鼠標(biāo)的某個鍵發(fā)送此消息給//當(dāng)前窗口  
const int WM_MOUSEACTIVATE = 0x21;  
//發(fā)送此消息給MDI子窗口//當(dāng)用戶點(diǎn)擊此窗口的標(biāo)題欄,或//當(dāng)窗口被激活,移動,改變大小  
const int WM_CHILDACTIVATE = 0x22;  
//此消息由基于計算機(jī)的訓(xùn)練程序發(fā)送,通過WH_JOURNALPALYBACK的hook程序分離出用戶輸入消息  
const int WM_QUEUESYNC = 0x23;  
//此消息發(fā)送給窗口當(dāng)它將要改變大小或位置  
const int WM_GETMINMAXINFO = 0x24;  
//發(fā)送給最小化窗口當(dāng)它圖標(biāo)將要被重畫  
const int WM_PAINTICON = 0x26;  
//此消息發(fā)送給某個最小化窗口,僅//當(dāng)它在畫圖標(biāo)前它的背景必須被重畫  
const int WM_ICONERASEBKGND = 0x27;  
//發(fā)送此消息給一個對話框程序去更改焦點(diǎn)位置  
const int WM_NEXTDLGCTL = 0x28;  
//每當(dāng)打印管理列隊增加或減少一條作業(yè)時發(fā)出此消息   
const int WM_SPOOLERSTATUS = 0x2A;  
//當(dāng)button,combobox,listbox,menu的可視外觀改變時發(fā)送  
const int WM_DRAWITEM = 0x2B;  
//當(dāng)button, combo box, list box, list view control, or menu item 被創(chuàng)建時  
const int WM_MEASUREITEM = 0x2C;  
//此消息有一個LBS_WANTKEYBOARDINPUT風(fēng)格的發(fā)出給它的所有者來響應(yīng)WM_KEYDOWN消息   
const int WM_VKEYTOITEM = 0x2E;  
//此消息由一個LBS_WANTKEYBOARDINPUT風(fēng)格的列表框發(fā)送給他的所有者來響應(yīng)WM_CHAR消息   
const int WM_CHARTOITEM = 0x2F;  
//當(dāng)繪制文本時程序發(fā)送此消息得到控件要用的顏色  
const int WM_SETFONT = 0x30;  
//應(yīng)用程序發(fā)送此消息得到當(dāng)前控件繪制文本的字體  
const int WM_GETFONT = 0x31;  
//應(yīng)用程序發(fā)送此消息讓一個窗口與一個熱鍵相關(guān)連   
const int WM_SETHOTKEY = 0x32;  
//應(yīng)用程序發(fā)送此消息來判斷熱鍵與某個窗口是否有關(guān)聯(lián)  
const int WM_GETHOTKEY = 0x33;  
//此消息發(fā)送給最小化窗口,當(dāng)此窗口將要被拖放而它的類中沒有定義圖標(biāo),應(yīng)用程序能返回一個圖標(biāo)或光標(biāo)的句柄,當(dāng)用戶拖放圖標(biāo)時系統(tǒng)顯示這個圖標(biāo)或光標(biāo)  
const int WM_QUERYDRAGICON = 0x37;  
//發(fā)送此消息來判定combobox或listbox新增加的項的相對位置  
const int WM_COMPAREITEM = 0x39;  
//顯示內(nèi)存已經(jīng)很少了  
const int WM_COMPACTING = 0x41;  
//發(fā)送此消息給那個窗口的大小和位置將要被改變時,來調(diào)用setwindowpos函數(shù)或其它窗口管理函數(shù)  
const int WM_WINDOWPOSCHANGING = 0x46;  
//發(fā)送此消息給那個窗口的大小和位置已經(jīng)被改變時,來調(diào)用setwindowpos函數(shù)或其它窗口管理函數(shù)  
const int WM_WINDOWPOSCHANGED = 0x47;  
聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 1
收藏 2
關(guān)注 19
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧