在C#中SendMessage和PostMessage的参数传递


-
在C#中SendMessage和PostMessage的参数传递 在C#中可以使用Window API提供的SendMessage和PostMessage来传递参数。两者的区别简单介绍下:返回值的不同,我们先看一下 MSDN 里的声明: LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); BOOL PostMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); 其中 4 个参数的意义是一样的,返回值类型不同(其实从数据上看他们一样是一个 32 位的数,只是意义不一样),LRESULT 表示的是消息被处理后的返回值,BOOL 表示的是消息是不是 Post 成功。 2、PostMessage 是异步的,SendMessage 是同步的。 PostMessage 只把消息放入队列,不管消息是否被处理就返回,消息可能不被处理;而 SendMessage 等待消息被处理完了之后才返回,如果消息不被处理,发送消息的线程将一直被阻塞。 3、如果在同一个线程内,SendMessage 发送消息时,由 USER32.DLL 模块调用目标窗口的消息处理程序,并将结果返回。SendMessage 在同一线程中发送消息并不入线程消息队列。PostMessage 发送消息时,消息要先放入线程的消息队列,然后通过消息循环分派到目标窗口(DispatchMessage)。 如果在不同线程内,SendMessage 发送消息到目标窗口所属线程的消息队列,然后发送消息的线程在 USER32.DLL 模块内监视和等待消息处理,直到目标窗口处理完返回。SendMessage 在返回前还做了很多工作,比如,响应别的线程向它 SendMessage。Post 到别的线程时,最好用 PostThreadMessage 代替 PostMessage,PostMessage 的 hWnd 参数可以是 NULL,等效于 PostThreadMessage + GetCurrentThreadId。Post WM_QUIT 时,应使用 PostQuitMessage 代替。 4、系统只整编(marshal)系统消息(0 到 WM_USER 之间的消息),发送用户消息(WM_USER 以上)到别的进程时,需要自己做整编。 用 PostMessage、SendNotifyMessage、SendMessageCallback 等异步函数发送系统消息时,参数里不可以使用指针,因为发送者并不等待消息的处理就返回,接受者还没处理指针就已经被释放了。 5、在 Windows 2000/XP 里,每个消息队列最多只能存放 10,000 个 Post 的消息,超过的还没被处理的将不会被处理,直接丢掉。这个值可以改得更大:[HKEY_LOCAL_MACHINE/SOFTWARE/ Microsoft/Windows NT/CurrentVersion/Windows] USERPostMessageLimit,最小可以是 4000。 PostMessage只负责将消息放到消息队列中,不确定何时及是否处理 SendMessage要等到受到消息处理的返回码(DWord类型)后才继续 PostMessage执行后马上返回 SendMessage必须等到消息被处理后才会返回。
-
2018-12-24
-
2017-06-17
-
2017-05-28
-
2017-01-03
-
2016-12-04
-
2016-08-29
-
2016-03-31
-
2015-10-21
-
2015-09-24
-
2015-06-17
PostMessage的c#用法。。_course
2012-12-30http://baike.baidu.com/view/1080179.htm#1 这个是VB.NET的,看不懂阿。 我主要想在本进程隐藏在后台的情况下,给这个窗体发送回车键。 有没有C#的例子。。
c#PostMessage的使用_course
2009-05-13如何在主窗体中传递一个信息给子窗体. (信息可以是自定义的数字,主要是起个标识的作用,子窗体根据这个标识可以作出相关的操作)
求C#中使用PostMessage的一个实例。_course
2010-05-26我使用C#向另一个程序发消息,不知道该怎么整,PostMessage如何引用以及PostMessage的四个参数具体定义。 千万别复制,我看所有的帖子都是复制的,统一的回答,让我脑袋疼。谢谢各位了。在
接收PostMessage传递过来的值_course
2011-10-07DLL中的函数 BOOL InstraHook(HWND hWnd) { int i=1234; PostMessage(hWnd,i,NULL,NULL);//发送 return true; } M
C# 关于API函数PostMessage()的鼠标单击坐标参数lParam_course
2010-04-05说实话本人笨的要死 高手指点下 尽量说的详细点 MSDN里面的我都看了 可还是不懂 看别人的代码这个参数的值都是8位数 高4位是Y 低4位是X 这我都知道 可问题是如何得到的 如何把自己想在窗口单击的
26.24MB
在C# API 消息处理 SendMessage PostMessage 进程通信 发消息 实例 文档资料
2015-02-13主要示例在C#中的SendMessage,PostMessage,包含两个示例,一个资料文档,希望受用。 在C#中 API 消息处理 SendMessage PostMessage 进程通信 发消息
16KB
PostMessage函数的使用实例
2013-07-25迅雷看看“本片即将结束,你可能也喜欢以下内容”提示的去除工具。其中包含可执行程序及源代码。涉及到的开发工具:vc6.0及spy++。详见http://blog.csdn.net/wwwwws/arti
165KB
POSTMESSAGE
2018-12-03PostMessage 使用C# 來模擬的一個例子 可做後續開發的一項基礎
63KB
c# 线程通信PostMessage SendMessage PeekMessage
2009-03-13关于FindWindow PostMessage SendMessage PeekMessage 的两个例子
c#中如何使用windows API向指定窗口发送按键消息?_course
2013-02-27我电脑上打开多个计算器 Process ProcessList = Process.GetProcessesByName("calc"); IntPtr calc = ProcessList.Main
C# win32 API PostMessage在2个进程间能发送字符串吗?_course
2012-08-14一个进程间互相通信的问题:PostMessage字符串的传递 代码如下, 发送方(a.exe): public static extern int PostMessage(int hwnd, int
请教C# PostMessage发送消息给记事本的问题_course
2007-02-22写了C#进程间交互的类,目的在于往一个已打开的记事本中写入一句话。 句柄正常取得,却无法将_sendVal显示在记事本中,请高手指教。 class Note { public static exter
c#调用WindowsAPI PostMessage的问题 高手请进_course
2010-09-07发中遇到这个问题:有个调用WindowsAPI的例子用vb6写的,可是我的代码是用c#写的,于是我想自己写成c#的可是没有看到效果,请高手指点!! vb中的代码 Public Const GWL_WN
-
下载
keypetbooks-api:api使用社交身份验证注册用户并读取csv文件-源码
keypetbooks-api:api使用社交身份验证注册用户并读取csv文件-源码
-
下载
TMP-sub-template-源码
TMP-sub-template-源码
-
学院
CCNA_CCNP 思科网络认证 PAT NAT 端口或地址转换 与端
CCNA_CCNP 思科网络认证 PAT NAT 端口或地址转换 与端
-
学院
PowerBI重要外部工具详解
PowerBI重要外部工具详解
-
学院
MySQL DML 语言(插入、更新与删除数据)
MySQL DML 语言(插入、更新与删除数据)
-
下载
FE-595:assmentment1-源码
FE-595:assmentment1-源码
-
下载
Algorithm:基于java语言的算法-源码
Algorithm:基于java语言的算法-源码
-
学院
MySQL 存储过程(创建海量数据实验环境)
MySQL 存储过程(创建海量数据实验环境)
-
博客
java基本类库
java基本类库
-
博客
新手小白选择这几个,每天200+14个自媒体平台赚钱模式解析
新手小白选择这几个,每天200+14个自媒体平台赚钱模式解析
-
下载
Curneu-Assessment-源码
Curneu-Assessment-源码
-
下载
leverage-calculator:invest投资时计算适当的杠杆和清算点-源码
leverage-calculator:invest投资时计算适当的杠杆和清算点-源码
-
博客
IPFS矿机相对其它矿机有什么优势?
IPFS矿机相对其它矿机有什么优势?
-
博客
面试又不会JVM?阿里P8总结出25道JVM面试解析(基础+进阶+实战)
面试又不会JVM?阿里P8总结出25道JVM面试解析(基础+进阶+实战)
-
下载
laisi_h5_new-源码
laisi_h5_new-源码
-
学院
MySQL 主从复制 Replication 详解(Linux 和 W
MySQL 主从复制 Replication 详解(Linux 和 W
-
下载
rust-wheels-源码
rust-wheels-源码
-
学院
app软件测试全栈系列精品课程
app软件测试全栈系列精品课程
-
博客
过扫描和欠扫描
过扫描和欠扫描
-
下载
YADFC:关于企鹅的FPS游戏-源码
YADFC:关于企鹅的FPS游戏-源码
-
下载
mywebsite.github.io:陈乔治的网站-源码
mywebsite.github.io:陈乔治的网站-源码
-
下载
AI_Lab_Internal_Exam:实验室考试-源码
AI_Lab_Internal_Exam:实验室考试-源码
-
下载
project-new-源码
project-new-源码
-
学院
MySQL 多平台多模式(安装、配置和连接 详解)
MySQL 多平台多模式(安装、配置和连接 详解)
-
博客
使用淘宝镜像下载国外资源
使用淘宝镜像下载国外资源
-
学院
MySQL 数据库的基本操作(数据完整性约束)
MySQL 数据库的基本操作(数据完整性约束)
-
博客
OX小牛量化系统开发方案源码搭建
OX小牛量化系统开发方案源码搭建
-
博客
Java设计模式:单例模式
Java设计模式:单例模式
-
下载
kumiko:基于任何图像的kumiko模式生成器-源码
kumiko:基于任何图像的kumiko模式生成器-源码
-
下载
sudacode-chess:棋-源码
sudacode-chess:棋-源码