日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#發(fā)送消息方法簡析

C#發(fā)送消息功能的實現(xiàn)是如何的呢?最近想模擬一下鍵盤按鍵,以便作一個游戲外掛.就試著用C#實現(xiàn)此功能那么這里向你介紹具體的實現(xiàn)過程,希望那個對你有個參考的作用。

我們擁有10多年網(wǎng)頁設計和網(wǎng)站建設經(jīng)驗,從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設計師為您提供的解決方案。為企業(yè)提供網(wǎng)站設計制作、成都網(wǎng)站設計、微信開發(fā)、微信小程序、手機網(wǎng)站制作、H5建站、等業(yè)務。無論您有什么樣的網(wǎng)站設計或者設計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設計服務并滿足您的需求。

C#發(fā)送消息功能的內涵方法:

C#中有一個Message結構,該結構中有一個函數(shù)Create()可以用來創(chuàng)建消息.原型如下:

 
 
 
  1. public static Message Create(
  2. IntPtr hwnd,//接收消息的窗口句柄
  3. int msg, //消息 的ID,也就是一個uint
  4. IntPtr wparam,// 消息的Wparam域
  5. IntPtr lparam //消息的Lparam域
  6. }

比如我們要發(fā)送一個字符串到記事本:

 
 
 
  1. string text ="范俊武搞的一個窗口消息測試!";//
  2. char[] chars = text.ToCharArray();//轉換成數(shù)組
  3. foreach (char item in chars)
  4. {
  5. Message msg = Message.Create(hWnd, WM_CHAR, 
  6. new IntPtr(item), IntPtr.Zero);
  7. //創(chuàng)建一個WM_CHAR消息.一會說這里邊的參數(shù)是怎么一回事
  8. MessageAPI.PostMessage(msg.HWnd, msg.Msg, 
  9. msg.WParam, msg.LParam);//調用Win32API函數(shù) ,
  10. //關于這個函數(shù)在C#中的聲明我就不寫了網(wǎng)上有很多關于C#中平臺調用的講解.
  11. }

C#發(fā)送消息之WM_CHAR介紹,它是Windows中的一個消息. MSDN是這樣定義的:

The WM_CHAR message is posted to the window with the keyboard focus when a WM_KEYDOWN message is translated by the TranslateMessage function. The WM_CHAR message contains the character code of the key that was pressed.

我粘貼過來,大家看下,我英語不是很好,翻譯不過來,不過我可以看明白是咋地一回事!大致是這個意思.當我們按下一個鍵的時候,產生一個WM_KEYDOWN 然后呢,這個消息被一個TranslateMessage 函數(shù)翻譯成WM_CHAR消息.顯然WM_CHAR消息攜帶了一個字符,比方說我們按了個字母"A"鍵,WM_CHAR就攜帶了"a" 這個character.

另外Create函數(shù)的第二個參數(shù)是Int型的.我們可以在Windows.h中看到WM_CHAR其實是一個常量:0x0102,一個十六進制數(shù).WM_CHAR的ID號.代表WM_CHAR消息.

所以第二個參數(shù)是這么來的:

 
 
 
  1. const int WM_CHAR = 0x0102;

WM_CHAR的消息中 wParam 是這么定義的,又是一段英文:Specifies the character code of the key. 就是一個按鍵的字符.

WM_CHAR的消息中 lParam ,這個參數(shù)比較復雜,是一個32位數(shù),每一位都有定義.不過這個參數(shù)經(jīng)常被設置成0.

那么hWnd從哪里來的呢,就是我們要發(fā)送消息到記事本窗口的句柄.這個句柄也是一個32位值.我們可以調用Win32API函數(shù)

 
 
 
  1. string className = "Notepad";
  2. string captionName = "無標題 - 記事本"; //可以通過SPY++了解到.
  3. IntPtr hWnd=FindWindow(className ,captionName);//找主窗口.
  4. hWnd = FindWindowEx(hWnd, IntPtr.Zero, "Edit", "");找主窗口中的Edit窗口.

PostMessage 就是發(fā)送消息了,各個參數(shù)都是在我們創(chuàng)建的消息Msg中包含的.挺簡單的.

至于wParam和lParam 不同的消息 會有不同的定義,我們想發(fā)送什么消息,就去MSDN中關于這個消息的定義,可以了解到wParam和lParam 的意義!

C#發(fā)送消息功能的基本內容就向你介紹到這里,希望那個對你了解和學習C#發(fā)送消息功能有所幫助。


當前標題:C#發(fā)送消息方法簡析
URL地址:http://www.5511xx.com/article/cdhdosd.html