c#windows消息循环sendmessage实例
[DllImport("User32.dll", EntryPoint = "SendMessage")]private static extern int SendMessage(IntPtr hWnd, // 信息发往的窗口的句柄 int Msg, // 消息ID int wParam, // 参数1 string lParam);[DllImport("User32.dll", EntryPoint = "SendMessage")]private static extern int SendMessage2(IntPtr hWnd, // 信息发往的窗口的句柄 int Msg, // 消息ID int wParam, // 参数1 IntPtr lParam);[DllImport("User32.dll", EntryPoint = "FindWindow")]private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);[DllImport("User32.dll", EntryPoint = "FindWindowEx")]private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName);
private void button4_Click(object sender, EventArgs e){IntPtr hwnd= FindWindow(null, "testForm");string info = "my info:ΑΒβδγζηθ";IntPtr pinfo= Marshal.StringToHGlobalAnsi(info);SendMessage2(hwnd, Form2.USERMESSAGEID, 12, pinfo);SendMessage(hwnd, Form2.USERMESSAGEID, 12, info);}
public const int USERMESSAGEID =0x2021;protected override void WndProc(ref Message m){switch(m.Msg){case USERMESSAGEID:{int wparam= m.WParam.ToInt32();string str = Marshal.PtrToStringAnsi(m.LParam);break;}}base.WndProc(ref m);}
[DllImport("User32.dll", EntryPoint = "SendMessage")]private static extern int SendMessage(IntPtr hWnd, // 信息发往的窗口的句柄 int Msg, // 消息ID int wParam, // 参数1 ref My_lParam lParam);
IntPtr ptr = FindWindow(null, "主界面");SendMessage(ptr, MYMESSAGE, 1, ref m);//发送消息
protected override void DefWndProc(ref Message m){try{switch (m.Msg){case MYMESSAGE:{My_lParam ml = new My_lParam();Type t = ml.GetType();ml = (My_lParam)m.GetLParam(t);break;}deafult :base.DefWndProc(ref m);}catch(){ }}
c#windows消息循环sendmessage实例相关推荐
- Windows 消息循环(1) - 概览
本文从消息循环是如何驱动程序的这个角度,对 Windows 消息循环进行概览性介绍. 使用 EN5 课件获得更好的阅读体验: [希沃白板5]课件分享 : <Windows培训 - 消息循环> ...
- C++-Windows消息循环GetMessage/TranslateMessage/DispatchMessage
1.windows消息循环 if (GetMessage(&msg, NULL, 0, 0)) {TranslateMessage(&msg); //消息转化DispatchMessa ...
- 详谈Windows消息循环机制
一直对windows消息循环不太清楚,今天做个详细的总结,有说错的地方,请务必指出. 用VS2017新建一个win32 Application的默认代码如下: 这里有几个概念,容易混淆: 1.系统: ...
- Windows消息循环机制详细概述
首先来了解几个基本概念: 消息:在了解什么是消息先来了解什么是事件.事件可分为几种,由输入设备触发的,比如鼠标键盘等等.由窗体控件触发的,比如button控件,file菜单等.还有就是来自Window ...
- Windows消息循环理解及窗体创建步骤
首先理解一句话:"Windows"向应用程序发送了一条消息.这里是指Windows调用了该程序内部的一个函数. 当UpdateWindow被调用后,新建的窗口在屏幕便完全可见了.此 ...
- 深入理解Windows消息循环
理解消息循环和整个消息传送机制对Windows编程来说非常重要.如果对消息处理的整个过程不了解,在windows编程中会遇到很多令人困惑的地方. 什么是消息(Message) 每个消息是一个整型数值, ...
- UI线程和Windows消息队列
在Windows应用程序中,窗体是由一种称为"UI线程(User Interface Thread)"的特殊类型的线程创建的. 首先,UI线程是一种"线程",所 ...
- 一、从Windows消息机制说起
一,消息 消息(Message)指的就是Windows 操作系统发给应用程序的一个通知,它告诉应用程序某个特定的事件发生了.比如,用户单击鼠标或按键都会引发Windows 系统发送相应的消息.最终处理 ...
- windows消息机制详解-3
1. 引言 Windows 在操作系统平台占有绝对统治地位,基于Windows 的编程和开发越来越广泛. Dos 是过程驱动的,而Windows 是事件驱动的[6],这种差别的存在使得很多Dos 程序 ...
最新文章
- oracle+结果拆分,ORACLE字符拆分函數返回結果集
- 百分点大数据技术团队:乘风破浪 海外数据中台项目实践
- JS如何制作图形验证码
- 卷积神经网络CNN要点:CNN结构、采样层、全连接层、Zero-padding、激活函数及Dropout
- map for循环_JavaScript 用 for 循环太 low?你是不是有什么误解
- 安卓手机刷软路由_华为路由AX3 Pro上手测评:用过最方便的路由器,没有之一...
- WinForm中WebBrowser的使用
- 实战 | 后端日志的前世今生
- Kotlin学习笔记18 反射Part2
- java的实现基础知识_Java基础知识
- 黑马程序员-面向对象-08天-2 (多态)
- 2018-10-09 星期二
- 中文界面blend_使用Blend设计出符合效果的WPF界面
- 2020杭电多校第三场部分题解(1004, 1005, 1006, 1009)
- Java字符和数字列对齐_字符串(包含中英文、数字、符号)的对齐
- [No0000134]C#中的委托,匿名方法和Lambda表达式
- 如何获取qq邮箱的秘钥
- Protocol handler initialization failed
- 哈工大软件构造课程知识点总结(二)
- 计算机故障处理试题,模块五计算机故障诊断与排除 测试题
热门文章
- Linux解决 -bash: nc: command not found问题,安装nc
- centos7 yum安装maven_Centos7.3安装Maven私服nexus-3.x
- java如何记录查看记录_Java如何检查消息是否可记录?
- android queue用法,GitHub - rygz146/TQueue: Android 可以任意切换线程的任务队列, TQueue
- 爬虫只能用python吗_只针对 Python 爬虫,该如何学习?
- w3c+html+格式转换,HTML 转义字符
- python 接口测试 如何写配置文件_python接口自动化测试二十九:yaml配置文件的写和读...
- 只有6个引脚的单片机,居然可以玩游戏。
- vb.net 如何文件指定打印机打印文件_使用Dropbox文件请求配合Canon Inkjet实现多用户文件打印...
- mysql结构优化_MySQL优化----数据库结构优化