找回密码
 加入
搜索
楼主: afan

[原创] A小译_划词翻译

  [复制链接]
发表于 2024-2-21 20:59:25 | 显示全部楼层
afan 发表于 2024-2-21 19:53
不懂你说啥……

看动图的蓝色粘贴按钮,我点击后不会粘贴。
 楼主| 发表于 2024-2-21 22:03:05 | 显示全部楼层
本帖最后由 afan 于 2024-2-21 22:41 编辑
chishingchan 发表于 2024-2-21 20:59
看动图的蓝色粘贴按钮,我点击后不会粘贴。

你的动图连鼠标光标都没有录制,也没有文字说明你点了什么,只有你自己明白什么意思。
你可以用其它大家都有的通用程序测试,比如记事本、SciTE 等等,再翻译点击试试,如果同样也没有粘贴,那就是A小译的问题。反之如果正常粘贴,那就是你用的程序问题,或者不支持。你也可以试试在你的程序上手动Ctrl+v,看看有没有粘贴。
我刚刚在记事本、SciTE、浏览器中都测试过了,没有问题。况且这是很常用的操作,如有问题早发现了。

建议测试反馈越详细越容易解决问题,而不是现在这样问一句仅答一句的方式 _ _||




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2024-2-22 08:59:03 | 显示全部楼层
A版,不知道是否是我电脑的问题,划词翻译的功能不太正常,(在认真学习了使用说明之后.有此疑问)

1.在记事本窗口中,第一次双击ctrl键,弹出翻译窗口,然后加入监测此控件,然后就可以在这个记事本中划词翻译了.(功能达到预期)


2.同样的操作在浏览器,(划词功能正常)

3.在notepad++中,划词功能失效.看了下运行环境,notepad++是运行在medium integrity等级下,而a小译运行在high等级下.应该不存在权限不够的情况.附个动图



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +50 收起 理由
afan + 50 反馈+

查看全部评分

 楼主| 发表于 2024-2-22 09:37:23 | 显示全部楼层
tubaba 发表于 2024-2-22 08:59
A版,不知道是否是我电脑的问题,划词翻译的功能不太正常,(在认真学习了使用说明之后.有此疑问)

1.在记事本 ...

稍等,我装个 notepad++ 测试下~
 楼主| 发表于 2024-2-22 11:19:33 | 显示全部楼层
tubaba 发表于 2024-2-22 08:59
A版,不知道是否是我电脑的问题,划词翻译的功能不太正常,(在认真学习了使用说明之后.有此疑问)

1.在记事本 ...

确实存在该问题,已找到原因,稍候修复中……
 楼主| 发表于 2024-2-22 12:48:31 | 显示全部楼层
tubaba 发表于 2024-2-22 08:59
A版,不知道是否是我电脑的问题,划词翻译的功能不太正常,(在认真学习了使用说明之后.有此疑问)

1.在记事本 ...

已修复,请重下试试~

240222 更新 3.6 版
        [修改]双击 Shift 开关切换时改用 Tooltip 工具提示(仅显示1秒),而非托盘区的气泡提示(动静过大)
        [修改]按住 Ctrl 点击“监测此控件”菜单项查看信息后不做切换处理(即仅查看当前信息),免得需要再次点击一次
        [修正]添加某些划词监控控件时会失效的问题

点评

神速呀明天到手试试  发表于 2024-2-22 17:53

评分

参与人数 1金钱 +40 收起 理由
w60711 + 40 348F 划词 3.6測試已正常~ 感謝通知~.

查看全部评分

发表于 2024-2-23 08:51:44 | 显示全部楼层
afan 发表于 2024-2-22 12:48
已修复,请重下试试~

240222 更新 3.6 版

测试已正常,暂时还没有发现其它问题

评分

参与人数 1金钱 +50 收起 理由
afan + 50 ok~

查看全部评分

发表于 2024-3-7 19:51:16 | 显示全部楼层

这个IP出问题了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2024-3-7 20:07:56 | 显示全部楼层

换另一个。偶尔连不上就换另一个,我一直在用。如果以后都失效了就自己找~
发表于 2024-3-13 09:27:57 | 显示全部楼层
A版,这次提个建议,不是BUG,似乎软件不支持多显示器,在副显示器划词时,翻译窗口仍然显示在主显示器上.

可能A版没有类似的开发环境,所以没法测试与开发.等以后条件成熟了,慢慢加上



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2024-3-13 10:56:59 | 显示全部楼层
tubaba 发表于 2024-3-13 09:27
A版,这次提个建议,不是BUG,似乎软件不支持多显示器,在副显示器划词时,翻译窗口仍然显示在主显示器上.

可能 ...

这个确实没有开发环境,所以无法得知原理。按说目前的在鼠标光标处显示应该是通用的,莫非在副显示器操作光标还在主显示器……
发表于 2024-3-13 11:31:28 | 显示全部楼层
afan 发表于 2024-3-13 10:56
这个确实没有开发环境,所以无法得知原理。按说目前的在鼠标光标处显示应该是通用的,莫非在副显示器操作 ...

可以把主显示器想像成一个大显示器中心的一块矩形,矩形左上角为0.0,然后副显示器显示区域为主显示器的左边的话,那么在副显示器的鼠标,其X坐标是负的,如果在主显示器的右边,坐标就是主显示器的宽度+副显示器的鼠标X坐标

即鼠标的坐标是相对于0.0这个位置,在左边为负,右边为正,上边为负,下边为正.

若有机会,A版可以亲自验证一下

评分

参与人数 1金钱 +50 贡献 +1 收起 理由
afan + 50 + 1

查看全部评分

 楼主| 发表于 2024-3-13 12:06:15 | 显示全部楼层
本帖最后由 afan 于 2024-3-13 12:30 编辑
tubaba 发表于 2024-3-13 11:31
可以把主显示器想像成一个大显示器中心的一块矩形,矩形左上角为0.0,然后副显示器显示区域为主显示器的左 ...

这就说得通了~  因为我做了纠错处理,对于超出显示器(多显示的话这里就是指主显示器)的坐标均会强行移回,防止窗口移出界面。如果这部分改造一下估计就成了,我试下先~
已修改为 3.7 版,请测试下~
 楼主| 发表于 2024-3-13 19:41:43 | 显示全部楼层
tubaba 发表于 2024-3-13 11:31
可以把主显示器想像成一个大显示器中心的一块矩形,矩形左上角为0.0,然后副显示器显示区域为主显示器的左 ...

之前发了一个版本3.7,对副显示器的坐标不做约束(超出屏幕范围不处理)
之后想了下,应该也可以做到约束,又发了一个3.7版本
基本逻辑是枚举显示器数量>1,找到当前坐标点所在的显示器,获取其矩形,计算居其坐标
但是因为没有测试条件,数据全靠猜……
发表于 2024-3-14 09:21:26 | 显示全部楼层
本帖最后由 tubaba 于 2024-3-14 09:26 编辑

有这几个API可用

Local $tagPOINT = "struct; long X;long Y; endstruct"
Local $tPoint = DllStructCreate($tagPOINT)
        DllStructSetData($tPoint, 'X', MouseGetPos(0))        ;当前鼠标X
        ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : MouseGetPos(0) = ' & MouseGetPos(0) & @CRLF & '>Error code: ' & @error & '    Extended code: ' & @extended & ' (0x' & Hex(@extended)  & ')    SystemTime: ' & @hour & ':' & @min & ':' & @sec & @CRLF) ;### Debug Console
        DllStructSetData($tPoint, 'Y', MouseGetPos(1))        ;当前鼠标Y
        ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : MouseGetPos(1) = ' & MouseGetPos(1) & @CRLF & '>Error code: ' & @error & '    Extended code: ' & @extended & ' (0x' & Hex(@extended)  & ')    SystemTime: ' & @hour & ':' & @min & ':' & @sec & @CRLF) ;### Debug Console
        Local $aRet = DllCall('user32.dll', 'hwnd', 'MonitorFromPoint', 'STRUCT', $tPoint, 'DWORD', 0)
        If $aRet[0] <> 0 Then
                Local $gMonitorInfo = DllStructCreate('dword;long[4];long[4];dword;wchar[32]')
                DllStructSetData($gMonitorInfo, 1, DllStructGetSize($gMonitorInfo))
                DllCall('user32.dll', 'bool', 'GetMonitorInfoW', 'handle', $aRet[0], 'ptr', DllStructGetPtr($gMonitorInfo))
                Local $aMonitor[4]
                For $i = 1 To 4
                        $aMonitor[$i - 1] = DllStructGetData($gMonitorInfo, 3, $i)
                Next
                $aMonitor[2] -= $aMonitor[0];当前显示器的显示宽度
                ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $aMonitor[2] = ' & $aMonitor[2] & @CRLF & '>Error code: ' & @error & '    Extended code: ' & @extended & ' (0x' & Hex(@extended)  & ')    SystemTime: ' & @hour & ':' & @min & ':' & @sec & @CRLF) ;### Debug Console
                $aMonitor[3] -= $aMonitor[1];当前显示器的显示高度
                ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $aMonitor[3] = ' & $aMonitor[3] & @CRLF & '>Error code: ' & @error & '    Extended code: ' & @extended & ' (0x' & Hex(@extended)  & ')    SystemTime: ' & @hour & ':' & @min & ':' & @sec & @CRLF) ;### Debug Console
EndIf
以下是测试结果,主显示器显示范围1920*1050,副显示器1600*870
鼠标在副显示器范围内
副显示器在主显示器的左边时
@@ Debug(4) : MouseGetPos(0) = -992
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:08:27
@@ Debug(6) : MouseGetPos(1) = 324
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:08:27
@@ Debug(17) : $aMonitor[2] = 1600
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:08:27
@@ Debug(19) : $aMonitor[3] = 870
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:08:27

副显示器在主显示器的右边时
@@ Debug(4) : MouseGetPos(0) = 2497
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:16:05
@@ Debug(6) : MouseGetPos(1) = 509
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:16:05
@@ Debug(17) : $aMonitor[2] = 1600
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:16:05
@@ Debug(19) : $aMonitor[3] = 870
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:16:05


副显示器在主显示器的上边时
@@ Debug(4) : MouseGetPos(0) = 1243
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:14:01
@@ Debug(6) : MouseGetPos(1) = -442
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:14:01
@@ Debug(17) : $aMonitor[2] = 1600
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:14:01
@@ Debug(19) : $aMonitor[3] = 870
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:14:01

副显示器在主显示器的下边时
@@ Debug(4) : MouseGetPos(0) = 1087
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:15:15
@@ Debug(6) : MouseGetPos(1) = 1512
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:15:15
@@ Debug(17) : $aMonitor[2] = 1600
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:15:15
@@ Debug(19) : $aMonitor[3] = 870
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:15:15
鼠标在主显示器范围内
@@ Debug(4) : MouseGetPos(0) = 976
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:18:07
@@ Debug(6) : MouseGetPos(1) = 600
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:18:07
@@ Debug(17) : $aMonitor[2] = 1920
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:18:07
@@ Debug(19) : $aMonitor[3] = 1050
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:18:07








评分

参与人数 1金钱 +50 收起 理由
afan + 50 辛苦辛苦

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-28 16:41 , Processed in 0.093162 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表