手机版
官方微信
扫描关注:理想财富微信公众号
理想论坛App
扫描下载理想论坛App
RSS

CTRL+A批量标注的实现方法

[其他股软] 精华 1
设置
6697 21 白一小目2 Lv.7 发表于 · 2020-10-27 08:37 举报 显示全部楼层 复制 正序浏览 |
跳转到指定楼层
本帖最后由 白一小目2 于 2020-10-27 08:42 编辑

坛子里不少和谐作品都开通了多字标注+批量标注。这其中纶巾羽扇老师的7.49(5月10日版)最完善,支持CTRL+Q和CTRL+A两种批量标注方式。而多数其它作品就只有CTRL+Q一种方式了。而且。除了羽扇老师的版本支持CTRL+Q批量删除标注外,其它的都要去CTRL+A对话框,批量删除标注。

CTRL+Q批量标注的好处是便捷,不足是要依赖屏幕上的选择,一次操作数量受屏幕限制。这里分享两个用CTRL+A实现批量标注的方法。

1)模拟CTRL+Q,这个可以满足习惯了用CTRL+A批量操作者的路径依赖。

进入批量操作对话框后,按ESC退出对话框,再按CTRL+Q,就可以实现通过CTRL+Q的批量标注。程序修改就是,进入批量操作对话框后,当选择文字标注时,发送模拟键盘按键序列:ESC、CTRL+Q。参考代码如下。
call      dword ptr ds:[<&USER32.GetActiveWindow>] ; user32.GetActiveWindow
mov     esi, eax
push    0x4                                      ; GW_OWNER
push    esi                                      ; hWnd_Child
call      dword ptr ds:[<&USER32.GetWindow>]       ; user32.GetWindow
mov     ebp, eax
push    0x0                                      ; lParam =0
push    0x1B                                     ; wParam = 'esc'
push    0x100                                    ; WM_KEYDOWN
push    esi                                      ; hWnd
call      dword ptr ds:[<&USER32.SendMessageA>]    ; user32.SendMessageA
push    0x0                                      ; lParam = 0
push    0x83FC                                   ; wParam = 33788(CTRL+Q)
push    0x111                                    ; WM_COMMAND
push    ebp                                      ; hWnd_Paraent
call      dword ptr ds:[<&USER32.PostMessageA>]    ; user32.PostMessageA

2)在CTRL+A中的直接实现
CTRL+A是针对一个板块全部股票轮巡,找出选择(前面打勾)的,进行批量操作,对于文字标注,每次要输入文字。这个不满足要求,我们要做的就是第一次遇到选择的股票时,弹出文字输入对话框,后面的直接用第一次录入的文字。这要求,a)保存第一次获得的文字,b)后面遇到打勾的股票在要弹出对话框时,直接用前面保存的文字替代。具体实现有些复杂,好在玺龙老师已经基本实现了,仅需要少量修改,就是 a)进入补码的时机,不是从轮巡股票的开始,而是遇到第一个文字输入对话框之后,b)补码的结束位置,不能直接跳回循环的开始,而是条件判断,当轮巡次数小于板块中股票数时跳回循环开始,否则,跳到调用返回处理。

进入时机修改的补码如下
mov     dword ptr ds:[0x1BD92CA],eax                ;保存股票是否被选择的标志
je      tdxw_mar.0040DB69
jmp     tdxw_mar.0040DA41
push    eax                                                       
mov     eax,dword ptr ds:[0x1BD92CA]
test    eax,eax
pop   eax
jje      tdxw_mar.01BD92F0
jmp     tdxw_mar.01BD9018                                ;进入玺龙老师的补码
cmp     ebp,eax
jl      tdxw_mar.0040DA30
jmp     tdxw_mar.0040DB7B

以上仅为实现的一种方式参考,没有程序修改基础的不必纠结。有了方法,更多老师会提供这个功能的。
查看全部打赏
  • 股道西风+100理想币 +10共享币 : 很给力,投资愉快,理想因你而精彩;
本主题由 任务系统 于 2020-10-27 12:15 加入精华

举报

扔鸡蛋(0) 回复

玺龙
Lv.7
发表于 2020-11-5 10:47 复制 查看全部楼层
优化的不错,对不熟悉ctrl+a功能的人有很大帮助【原版不选择首尾会出错】,除了全板块一步标注,其实ctrl+q都具备了快速简洁操作

举报

点亮(0) 扔鸡蛋(0) 回复

锦麟888
Lv.2
发表于 2020-10-30 09:09 复制 查看全部楼层
谢谢分享,学习学习!

举报

扔鸡蛋(0) 回复

王人二
Lv.7
发表于 2020-10-28 16:01 复制 查看全部楼层
通达信已经支持6个字,差不多够用。所以补上CTRL+A和CTRL+Q,就是复制的时候要特别仔细

举报

点亮(1) 扔鸡蛋(0) 回复

追风1999
Lv.4
发表于 2020-10-28 15:52 复制 查看全部楼层
白一小目2 发表于 2020-10-28 14:40
批量标注的修改涉及到内存管理,如果不熟悉,很容易出问题的。帖子中提到,要保留第一次输入标注文字对话框 ...

谢谢  可否来个完整的教程。

举报

扔鸡蛋(0) 回复

白一小目2
Lv.7
发表于 2020-10-28 14:40 复制 查看全部楼层
本帖最后由 白一小目2 于 2020-10-28 14:43 编辑

批量标注的修改涉及到内存管理,如果不熟悉,很容易出问题的。帖子中提到,要保留第一次输入标注文字对话框里的文字,供后面其它选择的股票使用,这样其实就是后面没有新创建字串了,那么,在与字串创建对应的字串销毁,就要去掉。否则,会造成内存不完整,出现闪退现象。

另外,对于超过4字的多字标注,需要修改标注文字录入对话框,容纳更多的汉字。这个修改好的,可以容纳16字。 对话框776.rar (325 Bytes, 下载次数: 9)

举报

点亮(1) 扔鸡蛋(0) 回复

乐天419
Lv.3
发表于 2020-10-28 08:34 复制 查看全部楼层

举报

扔鸡蛋(0) 回复

白一小目2
Lv.7
发表于 2020-10-27 22:20 复制 查看全部楼层
王人二 发表于 2020-10-27 19:59
你修改好的版本发来看一下

tdxw无BLs-玺龙trm - PLBZ.rar (2.56 MB, 下载次数: 17)

举报

扔鸡蛋(0) 回复

王人二
Lv.7
发表于 2020-10-27 19:59 复制 查看全部楼层

你修改好的版本发来看一下

举报

扔鸡蛋(0) 回复

追风1999
Lv.4
发表于 2020-10-27 19:56 复制 查看全部楼层

谢谢兄弟                 

举报

扔鸡蛋(0) 回复

白一小目2
Lv.7
发表于 2020-10-27 19:27 复制 查看全部楼层
追风1999 发表于 2020-10-27 12:53
可否发个小骆驼老师7.51超赢?  谢谢

tdxw-玺龙-xlt_无BL.rar (2.56 MB, 下载次数: 14)

举报

点亮(1) 扔鸡蛋(0) 回复

乐天419
Lv.3
发表于 2020-10-27 17:12 复制 查看全部楼层
裤子已经拖了,你们看着办。

举报

扔鸡蛋(0) 回复

追风1999
Lv.4
发表于 2020-10-27 12:53 复制 查看全部楼层
白一小目2 发表于 2020-10-27 12:36
玺龙老师在小骆驼老师7.51超赢基础上的16字标注版,批量补码地址在1bd9000

可否发个小骆驼老师7.51超赢?  谢谢

举报

扔鸡蛋(0) 回复

王人二
Lv.7
发表于 2020-10-27 12:51 复制 查看全部楼层
白一小目2 发表于 2020-10-27 12:36
玺龙老师在小骆驼老师7.51超赢基础上的16字标注版,批量补码地址在1bd9000

主程序可以提供一下的吗

举报

扔鸡蛋(0) 回复

白一小目2
Lv.7
发表于 2020-10-27 12:36 复制 查看全部楼层
王人二 发表于 2020-10-27 11:23
谢了,我好像不对,跳转到补码的位置是那个的呀

玺龙老师在小骆驼老师7.51超赢基础上的16字标注版,批量补码地址在1bd9000

举报

点亮(2) 扔鸡蛋(0) 回复

股长悟道
Lv.2
发表于 2020-10-27 12:35 复制 查看全部楼层
感谢老师分享!!!

举报

扔鸡蛋(0) 回复

王人二
Lv.7
发表于 2020-10-27 11:23 复制 查看全部楼层
白一小目2 发表于 2020-10-27 10:12
就是跳过去补码那句,继续。二进制代码是74 05

谢了,我好像不对,跳转到补码的位置是那个的呀

举报

点亮(1) 扔鸡蛋(0) 回复

缩螺丝
Lv.6
发表于 2020-10-27 11:12 复制 查看全部楼层
感谢/:                                             

举报

点亮(2) 扔鸡蛋(0) 回复

白一小目2
Lv.7
发表于 2020-10-27 10:12 复制 查看全部楼层
王人二 发表于 2020-10-27 09:28
老师,这个位置jje      tdxw_mar.01BD92F0应该注释一下的

就是跳过去补码那句,继续。二进制代码是74 05

举报

点亮(2) 扔鸡蛋(0) 回复

高压钠灯
Lv.4
发表于 2020-10-27 09:37 复制 查看全部楼层
其实不难,只不过ctrl+Q实现了之后,CTRL+A就懒得改了,折腾太累,能用就行

举报

点亮(2) 扔鸡蛋(0) 回复

王人二
Lv.7
发表于 2020-10-27 09:28 复制 查看全部楼层
老师,这个位置jje      tdxw_mar.01BD92F0应该注释一下的

举报

点亮(2) 扔鸡蛋(0) 回复

熊猫1217
Lv.3
发表于 2020-10-27 08:48 复制 查看全部楼层
感谢老师分享

举报

扔鸡蛋(0) 回复

您需要登录后才可以回帖 登录

本版积分规则 《理想财富服务协议》《免责声明》

论坛问题
微信扫一扫,添加好友咨询
驿站问题
微信扫一扫,添加好友咨询
广告投放
微信扫一扫,添加好友咨询
回顶部 到页底
快速回复 返回顶部 返回列表