| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 357 人关注过本帖
标题:PostMessage发送字符串返回接口字符怎么正常显示字符串
只看楼主 加入收藏
ljb8864
Rank: 2
等 级:论坛游民
帖 子:171
专家分:14
注 册:2023-6-4
结帖率:2.78%
收藏
已结贴  问题点数:20 回复次数:6 
PostMessage发送字符串返回接口字符怎么正常显示字符串
Declare integer PostMessage in win32api as F_PostMessage Long ,Long ,Long ,string

isec=STR(Seconds(),10,5)
F_PostMessage (thisform.HWnd,1024+22,LEN(isec),isec )


Procedure OnProgress
Lparameters tnHWnd,tnwMsg,tnwParam,tnLparam
? SYS(2600,tnLparam,tnwParam) &&这句显示乱码,要如何才能显示正确的字符串
?tnwParam,tnLparam

EndProc



        /// 使用COPYDATASTRUCT来传递字符串
        /// </summary>
        [StructLayout(LayoutKind.Sequential)]
        public struct COPYDATASTRUCT
        {
            public IntPtr dwData;
            public int cbData;
            [MarshalAs(UnmanagedType.LPStr)]
            public string lpData;
        }

[此贴子已经被作者于2023-12-22 09:53编辑过]

搜索更多相关主题的帖子: public 字符串 发送 返回 显示 
2023-12-22 09:45
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:10 
第4个参数用字符串地址
2023-12-22 10:06
ljb8864
Rank: 2
等 级:论坛游民
帖 子:171
专家分:14
注 册:2023-6-4
收藏
得分:0 
回复 2楼 吹水佬
问下,使用postmessage 设置字符串时
会出错,这是什么问题

For x=1 to 10


imessagestring=TEXTMERGE("<<Datetime()>> <<Seconds()>> <<x>> <<nMax>> <<this.Pro>> ")
F_PostMessage(this.ParentHwnd,this.ParentMsg,LEN(imessagestring),imessagestring) &&通知主程序


*!*    isec=STR(Seconds(),10,5)
*!*    SendMessage(this.ParentHwnd,this.ParentMsg,LEN(isec),isec )

For y =1 to 200
*!*    Activate Screen
?Seconds()
EndFor
EndFor
2023-12-22 11:47
ljb8864
Rank: 2
等 级:论坛游民
帖 子:171
专家分:14
注 册:2023-6-4
收藏
得分:0 
回复 2楼 吹水佬
不能在FOR 中使用字符类型的消息传递吗?
2023-12-22 15:26
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用ljb8864在2023-12-22 15:26:35的发言:

不能在FOR 中使用字符类型的消息传递吗?

参见2楼
2023-12-22 15:28
shizi0
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:129
专家分:404
注 册:2012-10-2
收藏
得分:10 
方案一:传递String,接收方可直接接收字符串
方案二:传递String的内存地址,接收方从 发送方 该地址读取内存内容。
楼主SYS(2600,)是读取接收方本进程内存,传递的肯定是发送方的内存地址,所以读取的内容不对。接收方可用OpenProcess(0x1F0FFF,0,发送方pid)+ReadProcessMemory()跨进程读取。

2023-12-24 15:03
ljb8864
Rank: 2
等 级:论坛游民
帖 子:171
专家分:14
注 册:2023-6-4
收藏
得分:0 
回复 6楼 shizi0
postMess int 可以
2023-12-25 11:26
快速回复:PostMessage发送字符串返回接口字符怎么正常显示字符串
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039140 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved