chishingchan 发表于 2024-2-21 20:59:25

afan 发表于 2024-2-21 19:53
不懂你说啥……

看动图的蓝色粘贴按钮,我点击后不会粘贴。

afan 发表于 2024-2-21 22:03:05

本帖最后由 afan 于 2024-2-21 22:41 编辑

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

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




tubaba 发表于 2024-2-22 08:59:03

A版,不知道是否是我电脑的问题,划词翻译的功能不太正常,(在认真学习了使用说明之后.有此疑问)

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


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

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



afan 发表于 2024-2-22 09:37:23

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

1.在记事本 ...

稍等,我装个 notepad++ 测试下~

afan 发表于 2024-2-22 11:19:33

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

1.在记事本 ...

确实存在该问题,已找到原因,稍候修复中……

afan 发表于 2024-2-22 12:48:31

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

1.在记事本 ...

已修复,请重下试试~

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

tubaba 发表于 2024-2-23 08:51:44

afan 发表于 2024-2-22 12:48
已修复,请重下试试~

240222 更新 3.6 版


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

chishingchan 发表于 2024-3-7 19:51:16


这个IP出问题了!

afan 发表于 2024-3-7 20:07:56

chishingchan 发表于 2024-3-7 19:51
这个IP出问题了!

换另一个。偶尔连不上就换另一个,我一直在用。如果以后都失效了就自己找~

tubaba 发表于 2024-3-13 09:27:57

A版,这次提个建议,不是BUG,似乎软件不支持多显示器,在副显示器划词时,翻译窗口仍然显示在主显示器上.

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



afan 发表于 2024-3-13 10:56:59

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

可能 ...

这个确实没有开发环境,所以无法得知原理。按说目前的在鼠标光标处显示应该是通用的,莫非在副显示器操作光标还在主显示器……

tubaba 发表于 2024-3-13 11:31:28

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

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

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

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

afan 发表于 2024-3-13 12:06:15

本帖最后由 afan 于 2024-3-13 12:30 编辑

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

afan 发表于 2024-3-13 19:41:43

tubaba 发表于 2024-3-13 11:31
可以把主显示器想像成一个大显示器中心的一块矩形,矩形左上角为0.0,然后副显示器显示区域为主显示器的左 ...

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

tubaba 发表于 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 Then
                Local $gMonitorInfo = DllStructCreate('dword;long;long;dword;wchar')
                DllStructSetData($gMonitorInfo, 1, DllStructGetSize($gMonitorInfo))
                DllCall('user32.dll', 'bool', 'GetMonitorInfoW', 'handle', $aRet, 'ptr', DllStructGetPtr($gMonitorInfo))
                Local $aMonitor
                For $i = 1 To 4
                        $aMonitor[$i - 1] = DllStructGetData($gMonitorInfo, 3, $i)
                Next
                $aMonitor -= $aMonitor;当前显示器的显示宽度
                ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $aMonitor = ' & $aMonitor & @CRLF & '>Error code: ' & @error & '    Extended code: ' & @extended & ' (0x' & Hex(@extended)& ')    SystemTime: ' & @hour & ':' & @min & ':' & @sec & @CRLF) ;### Debug Console
                $aMonitor -= $aMonitor;当前显示器的显示高度
                ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $aMonitor = ' & $aMonitor & @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 = 1600
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:08:27
@@ Debug(19) : $aMonitor = 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 = 1600
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:16:05
@@ Debug(19) : $aMonitor = 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 = 1600
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:14:01
@@ Debug(19) : $aMonitor = 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 = 1600
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:15:15
@@ Debug(19) : $aMonitor = 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 = 1920
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:18:07
@@ Debug(19) : $aMonitor = 1050
>Error code: 0    Extended code: 0 (0x00000000)    SystemTime: 09:18:07








页: 14 15 16 17 18 19 20 21 22 23 [24] 25 26
查看完整版本: A小译_划词翻译