RichEdit控件在处理EM_REPLACESEL消息中有bug?附一种解决办法

简介: RichEdit控件在处理EM_REPLACESEL消息中有bug?附一种解决办法

在 CmdShell 和 bat_do 中,命令的执行结果会通过EM_REPLACESEL消息添加到RichEdit控件编辑框中,但 ping 等一些命令的执行结果添加到RichEdit控件编辑框中会显示在同一行。

经对比分析ping 等一些命令的执行结果和添加到RichEdit控件编辑框中的结果,发现出现问题的原因在于:ping 等一些命令的执行结果中有一些换行符为 0dh, 0dh, 0ah,这些换行符在添加到 RichEdit控件编辑框的过程中,会被替换为 020h(即空格),于是所有的结果就显示在同一行了。

我的一种解决办法是对ping 等一些命令的执行结果进行处理,把0dh, ……, 0dh,换为 0dh。相应代码为:

;--- Check & skip 0dh series
    ; buffer--保存命令处理结果的内存首地址
    ; bytesRead--命令处理结果长度(字节)
    lea  esi, buffer
    mov  edi, esi
    add  bytesRead, esi
    xor  eax, eax;AL--当前字符, AH--前一字符
@TranBegin:
    cmp  esi, bytesRead
    jg   @TranEnd    mov al, byte ptr [esi]
    cmp al, 0dh
    jne @TranCopy
    cmp ah, 0dh
    jne @SkipTran
@TranCopy:
    mov byte ptr [edi], al
    inc edi
@SkipTran:
    mov ah, al
    inc esi
    jmp @TranBegin
@TranEnd:
目录
打赏
0
0
0
0
57
分享
相关文章
「AI工程师」算法研发与优化-工作指导
**工作指导书摘要:** 设计与优化算法,提升性能效率;负责模型训练及测试,确保准确稳定;跟踪业界最新技术并应用;提供内部技术支持,解决使用问题。要求扎实的数学和机器学习基础,熟悉深度学习框架,具备良好编程及数据分析能力,注重团队协作。遵循代码、文档和测试规范,持续学习创新,优化算法以支持业务发展。
571 0
「AI工程师」算法研发与优化-工作指导
线性代数——(期末突击)行列式(上)-行列式计算、行列式的性质
线性代数——(期末突击)行列式(上)-行列式计算、行列式的性质
420 7
【Python机器学习专栏】文本数据的特征提取与表示
【4月更文挑战第30天】本文探讨了文本特征提取与表示在机器学习和NLP中的重要性。介绍了词袋模型、TF-IDF和n-gram等特征提取方法,以及稀疏向量和词嵌入等表示方式。Python中可利用sklearn和gensim库实现这些技术。有效的特征提取与表示有助于将文本数据转化为可处理的数值形式,推动NLP和机器学习领域的进步。
454 0
【windows自带exe】使用`findstr.exe`来搜索包含某个字符串的文件
【windows自带exe】使用`findstr.exe`来搜索包含某个字符串的文件
1199 0
Android.mk里的LOCAL_SRC_FILES
Android.mk里的LOCAL_SRC_FILES
149 0
dump_stack分析函数调用关系实例及其实现
dump_stack分析函数调用关系实例及其实现
312 0
C/C++使用Windows的API实现共享内存以及同步
C/C++使用Windows的API实现共享内存以及同步
1766 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等