C#发送消息方法简析

C#发送消息功能的实现是如何的呢?最近想模拟一下键盘按键,以便作一个游戏外挂.就试着用C#实现此功能那么这里向你介绍具体的实现过程,希望那个对你有个参考的作用。

C#发送消息功能的内涵方法:

C#中有一个Message结构,该结构中有一个函数Create()可以用来创建消息.原型如下:

比如我们要发送一个字符串到记事本:

C#发送消息之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 函数翻译成WM_CHAR消息.显然WM_CHAR消息携带了一个字符,比方说我们按了个字母"A"键,WM_CHAR就携带了"a" 这个character.

另外Create函数的第二个参数是Int型的.我们可以在Windows.h中看到WM_CHAR其实是一个常量:0x0102,一个十六进制数.WM_CHAR的ID号.代表WM_CHAR消息.

所以第二个参数是这么来的:

WM_CHAR的消息中 wParam 是这么定义的,又是一段英文:Specifies the character code of the key. 就是一个按键的字符.

WM_CHAR的消息中 lParam ,这个参数比较复杂,是一个32位数,每一位都有定义.不过这个参数经常被设置成0.

那么hWnd从哪里来的呢,就是我们要发送消息到记事本窗口的句柄.这个句柄也是一个32位值.我们可以调用Win32API函数

PostMessage 就是发送消息了,各个参数都是在我们创建的消息Msg中包含的.挺简单的.

至于wParam和lParam 不同的消息 会有不同的定义,我们想发送什么消息,就去MSDN中关于这个消息的定义,可以了解到wParam和lParam 的意义!

C#发送消息功能的基本内容就向你介绍到这里,希望那个对你了解和学习C#发送消息功能有所帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值