在 Dragon NaturallySpeaking 的高级脚本中将活动 window 的标题复制到 Microsoft Windows 中的剪贴板

Copy the title of the active window to the clipboard in Microsoft Windows in Dragon NaturallySpeaking's advanced scripting

在 Dragon NaturallySpeaking 的高级脚本中,是否有任何方法可以将活动 window 的标题复制到 Microsoft Windows 的剪贴板?

我使用的解决方法是定义一个 AutoHotkey 脚本:

^!l::
WinGetActiveTitle, Title
Clipboard = %Title%
return

并在语音命令中调用键盘快捷键:

但我不想在 AutoHotkey 和 Dragon NaturallySpeaking 之间混为一谈。可以在 "pure" 高级脚本中完成吗?

是的,您可以使用 Dragon NaturallySpeaking 的高级脚本将活动 window 的标题复制到剪贴板,如下所示:

'
'   get window title
'
Sub Main
    Clipboard ( GetWindowTitle )
End Sub
'
'   Use these Windows Functions for Getting an active Window title
'
Declare Function GetForegroundWindow Lib "user32" () As Long
'
Declare Function GetWindowText Lib "user32" _
    Alias "GetWindowTextA" ( ByVal hwnd As Long , _
        ByVal lpString As String , ByVal cch As Long ) As Long
'
'   GetWindowTitle
'   (Gets an active Window title)
'
Function GetWindowTitle() As String
    Dim x As Integer
    Dim TitleText As String * 300
    Dim hw As Long
    hw = GetForegroundWindow()
    x = GetWindowText ( hw , TitleText , Len ( TitleText ) )
    GetWindowTitle = Trim ( Left ( TitleText , x ) )
End Function
'

现在,我将所有函数保存在一个全局 '#Uses 文件中(带有其他声明、函数和全局常量等),所以我只需要 Main Sub 部分,但您可以将所有引用的在您需要的一个脚本中也包含函数和声明。

Hth