Nuance Dragon中RememberPoint调用报错 韩语输入切换脚本开发问题
问题根因
你遇到的两类报错均是对RememberPoint的API特性和脚本语法规则不熟悉导致:
- 报错
"Subs can't be used in expressions":RememberPoint是无返回值的Sub过程,不是有返回值的Function,不能作为右值赋值给变量,所有赋值写法本身就不符合语法要求。 - 报错
"Expecting 'Declare|Delegate|...'":脚本的模块级(Sub Main外部)仅允许放置声明类语句,不能直接写执行逻辑,你在外部写的originalPoint = RememberPoint属于可执行语句,不符合语法规范。
RememberPoint的设计逻辑是调用后自动将当前鼠标坐标存储在程序内部缓存中,不需要开发者手动接收返回值,后续直接调用配套的GoToPoint方法即可回到记录的坐标位置。
正确实现代码
以下是适配你需求的可运行脚本,替换其中的热键、目标点击坐标为你实际使用的参数即可:
Sub Main ' 记录当前鼠标位置,内部自动存储无需赋值 RememberPoint ' 替换为你实际的韩语输入切换热键,示例为Alt+Shift+H SendKeys "%+h" ' 替换为你的语言栏谚文输入按钮的实际屏幕坐标,示例为坐标(950, 10)左击1次 MouseClick 1, 950, 10 ' 回到之前记录的初始光标位置 GoToPoint End Sub
如果你确实需要手动获取坐标值做自定义处理,可以调用Windows系统API实现,无需依赖RememberPoint:
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Type POINTAPI x As Long y As Long End Type Sub Main Dim originalPos As POINTAPI ' 获取当前坐标存入originalPos变量 GetCursorPos originalPos ' 此处插入你的语言切换、按钮点击逻辑 SendKeys "%+h" MouseClick 1, 950, 10 ' 手动复位鼠标位置到初始坐标 SetCursorPos originalPos.x, originalPos.y End Sub
内容的提问来源于stack exchange,提问作者Simon McEntire
相关产品推荐
相关产品推荐

