0

我想知道是否可以在 Dragon NaturallySpeaking 的高级脚本中获取光标上下文。

光标上下文是指周围的字符。例如,我有时想以光标前面的字符是否为空格为条件来判断语音命令的某些步骤。

4

1 回答 1

2

我能想到的最好的方法是CheckNewPara这里显示的函数:http: //knowbrainer.com/forums/forum/messageview.cfm ?catid=4&threadid=2739&discTab=true&messid=11427&parentid=11409&FTVAR_FORUMVIEWTMP=Single

Function CheckNewPara()
    Clipboard$()
    SendKeys "+{Left}^c", True  '  copy previous character
    Select Case Clipboard$()
            Case ""  '  if the prior character is nothing
                    CheckNewPara = ""  '  add no space
            Case Chr(13)&Chr(10), Chr(9), ")"  '  if the prior character is a Lf-CR, tab or )
                    SendKeys "{Right}", True
                    CheckNewPara = ""  '  add no space
            Case "."  '  if the prior character is a period
                    SendKeys "{Right}", True
                    Clipboard$()  '  check for No.
                    SendKeys "+{Left 3}^c", True  '  copy prior three characters
                    SendKeys "{Right}", True
                            If Clipboard$() = "No." Then
                                    CheckNewPara = " "  '  add one space after No.
                            Else
                                    CheckNewPara = "  "  '  add two spaces after period
                            End If
            Case "?", "!"
                    SendKeys "{Right}", True
                    CheckNewPara = "  "  '  add two spaces after other ends of sentence
            Case Else
                    SendKeys "{Right}", True
                    CheckNewPara = " "  '  add one space in the usual case
    End Select
    Clipboard$()
End Function

您应该查看http://knowbrainer.com/forums/forum/messageview.cfm?FTVAR_FORUMVIEWTMP=Linear&catid=4&threadid=2739&discTab=true的完整主题以获取所有上下文,但我指出的帖子中的代码应该得到你开始了。

我最新版本的函数实际上调用了一个 AutoHotKey 脚本,该脚本同时查看前三个字符(或尽可能多的字符,如果有的话)和接下来的两个字符(或者有多少字符,如果有的话)并根据上下文返回一个空格、两个空格或什么都不返回。上下文可以是终端标点符号(需要两个空格)或井号/哈希 # 符号或右括号或大括号 ] } 都不需要空格,或者默认情况下一个空格。我也有它,所以我可以在输入 Dragon 命令的结果之前和/或之后调用它。

HTH,YMMV,

于 2016-05-31T17:12:44.453 回答