系统事件——通知消息
通过窗口可以实现跨进程通信:
发送方:
接收方:
整数 窗口=查找窗口(0,"窗口标题"); 通过窗口名获取到相应程序的窗口对象 发送消息(窗口,设置文本,0,"标题文字"); 修改窗口对象文字可以修改此窗口的标题栏 发送消息(窗中,设置图标,0,载入图标(0,32518)); 修改程序窗口的小图标为盾牌图标 整数 按钮=获取控件(窗口,1); 假如此窗口的1号控件是个按钮,获取到按钮控件的子窗口对象 整数 标签=获取控件(窗口,2); 假如此窗口的2号控件是个标签,获取到标签控件的子窗口对象 整数 编辑=获取控件(窗口,3); 假如此窗口的3号控件是个编辑框,获取到编辑框的子窗口对象 整数 列表=获取控件(窗口,4); 假如此窗口的4号控件是个列表框,获取到列表框的子窗口对象 整数 组合=获取控件(窗口,5); 假如此窗口的5号控件是个组合框,获取到组合框的子窗口对象 发送消息(按钮,模拟点击,0,0); 模拟点击另个程序窗口的1号按钮,窗口最小化和隐藏都可操作 发送消息(标签,设置文本,0,"修改内容"); 修改另个程序窗口的标签框内容,窗口最小化和隐藏都可操作 发送消息(编辑,获取文本,64,内容); 获取另个程序窗口的编辑框内容,窗口最小化和隐藏都可操作 发送消息(列表,列表添加,0,"项目内容"); 向另个程序窗口的列表框添加内容,窗口最小化和隐藏都可操作 发送消息(组合,组合添加,0,"项目文字"); 向另个程序窗口的组合框添加内容,窗口最小化和隐藏都可操作 跨进程操作窗口可以使用"控制窗口","显隐窗口","设置窗口","移动窗口"和"发送消息","提交消息"等函数 不能使用"取窗口字","改窗口字","窗口字长","取控件字","改控件字","取控件数","改控件数"等函数 通过传递数据类结构体可以自定义传递数据类型,接收方根据不同类型进行相应的处理
发送方:
传递数据类 传送; 先申请一个传递数据类的变量名为:传送 传送.数据="发送一段文字"; 定义传送的数据为一段文字的指针 传送.大小=字串长度(传送.数据); 定义传送的数据大小为该文字的长度 整数 窗口=查找窗口(0,"窗口标题"); 通过窗口名获取到相应程序的窗口对象 发送消息(窗口,传递数据,0,传送); 把自定义数据发送给另个程序的窗口 传送.分类 在没有指定的情况下,默认值是0,接收方可以判断为0的分类,是传送的文本内容
接收方:
为 传递数据 接收数据(数据); 在窗体消息里加入这句代码 程序段 接收数据(传递数据类 接收); 增加一个接收数据的程序段 传送内存(内容,接收.数据,接收.长度); 把数据复制到接收程序的变量里 信息框(0,内容,"收到数据",信息图标); 弹出提示数据已接收完成
配置更新 | $001A | WM_WININICHANGE | 读写"win.ini"时会发送本消息给所有顶层窗口, 通知其它进程该文件已被更改。③参数:0;④数据:名称 |
设备模式 | $001B | WM_DEVMODECHANGE | 改变设备模式设置("win.ini")时,处理本消息的应用程序可重新 初始化它们的设备模式设置③参数:0;④数据:名称 |
系统关机 | $0011 | WM_QUERYENDSESSION | 关机或注销时系统会按优先级给各进程发送,告诉应用程序要关机 或注销了。③参数:0;④数据:0正在关闭事件;1文件要换或资源耗尽; 4强制关闭程序;8用户正在注销 |
开始关机 | $0016 | WM_ENDSESSION | 关机或注销时系统会发出消息给应用程序,通知程序会话结束。 ③参数:0会话结束,非0正在结束;④数据:0正在关闭事件; 1文件要换或资源耗尽;4强制关闭程序;8用户正在注销 |
时间错误 | $0017 | WM_SYSTEMERROR | 系统时间错误。③参数:0;④数据:0 |
字库更新 | $001D | WM_FONTCHANGE | 当系统的字体资源库变化时发送本消息给所有顶级窗口。 ③参数:0;④数据:0 |
时间改变 | $001E | WM_TIMECHANGE | 当系统的时间变化时发送本消息给所有顶级窗口。 ③参数:0;④数据:0 |
系统暂停 | $0048 | WM_POWER | 当系统将要进入暂停状态时发送本消息(适用于16位的windows) ③参数:1即将挂起,2挂起恢复,3含两种;④数据:0 |
传递数据 | $004A | WM_COPYDATA | 当一个应用程序传递数据给另一个应用程序时发送本消息。 ③参数:窗口;④数据:传递数据类 |
取消日志 | $004B | WM_CANCELJOURNAL | 当用户取消程序日志激活状态时,发送本消息给那个应用程序。 该消息使用空窗口句柄发送。③参数:0;④数据:0 |
用户出入 | $0054 | WM_USERCHANGED | 当用户已登入或退出后发送本消息给所有窗口;当用户登入或 退出时以及系统更新用户设置时,立即发送本消息。 ③参数:0;④数据:0; 自 Windows Vista 起,不支持此消息。 |
调分辨率 | $007E | WM_DISPLAYCHANGE | 当显示器的分辨率改变后,发送本消息给所有窗口。 ③参数:位深;④数据:分辨率x/y |
电源消息 | $218 | WM_POWERBROADCAST | 通知它有关电源管理事件。③参数:4正在扶起,7正在恢复, 10状态更改,18自动恢复,32781设置更改; ④数据:无/POWERBROADCAST_SETTING/ PBT_POWERSETTINGCHANGE |
硬件修改 | $219 | WM_DEVICECHANGE | 当设备的硬件配置改变时,发送本消息给应用程序或设备驱动程序。 ③参数:事件;④数据:结构 |
主题更改 | $31A | WM_THEMECHANGED | 在主题更改事件后广播到每个窗口。③参数:0;④数据:0 |
消息保留 | $0000 | PM_NOREMOVE | 查探消息处理后,消息不从队列里除掉。 |
消息清除 | $0001 | PM_REMOVE | 查探消息处理后,消息从队列里除掉。 |
消息空闲 | $0002 | PM_NOYIELD | 此标志使系统不释放等待调用程序空闲的线程。 |
用户消息 | $400 | WM_USER | 用于帮助应用程序自定义私有消息,通常形式为:WM_USER + X |
程序消息 | $8000 | WM_APP | 用于帮助应用程序自定义私有消息,通常形式为:WM_APP + X |
传递数据类——结构体定义
中文名字 | 英文名称 | 长度 | 作用解释 |
传递数据类 | COPYDATASTRUCT | 12 | 包含要通过发送消息传递给另一个应用程序的数据。 |
传递数据类——成员表 | |||
---|---|---|---|
中文 | 英文 | 类型 | 作用解释 |
分类 | dwData | 整数 | 要传递给接收应用程序的数据类型。 |
大小 | cbData | 整数 | 指向的数据的大小(以字节为单位)。 |
数据 | lpData | 整数 | 要传递给接收应用程序的数据。 |