通过键盘快捷键

时间:2017-07-06 16:32:58

标签: windows keyboard-shortcuts autoit explorer

我正在尝试直接从Windows资源管理器中触发对程序的调用,并将所选文件作为参数,并通过按键(在 F12 Ctrl 上)例如+ E 。与选择多个文件时相同的操作,然后按 F2 将其全部重命名。我在注册表中查看但没有成功。

例如,当我打开我的src文件夹并选择一些JS文件时,我必须右键单击一个文件,选择“发送到”,然后选择我的“programme.exe”的右侧快捷方式软件(从JS转录,导入一些环境变量等)。如果我只需按 Ctrl + E 来转录和编辑这些选定的文件,将会很有帮助。

我正在寻找的另一个类似的事情是按 F12 并编辑我选择的所有文件(我使用键盘比使用鼠标更容易)。

我在Windows 10上,并不认为这与桌面快捷方式或类似内容相关联。我应该更明确;外部调用已完成,但键盘快捷键和这些调用之间的链接是我正在尝试处理的部分。

我已经创建了一个执行此操作的AutoIt脚本,但它应该可以在Windows资源管理器中 (并且只有在需要时才会这样做,而不是无限地循环脚本),不应该'是吗?

#include <Array.au3>
#include <WinAPI.au3>

; Init - stop
Global $stop = False
HotKeySet("{F4}", "stop")
Func stop()
    If $stop Then Exit
    $stop = True
EndFunc

; Init - trigger
Global $trigger = False
HotKeySet("^t", "trigger")
Func trigger()
    $trigger = True
EndFunc

; Event loop
While Not $stop
    Sleep(100)
    If $trigger Then
        action()
        $trigger = False
    EndIf
WEnd

Func action()
    ConsoleWrite(@CRLF)
    ; Check active window (explorer only)
    Local $handle = WinGetHandle("[ACTIVE]"), $class = _WinAPI_GetClassName($handle)
    ConsoleWrite("- Window:"&$class&" ")
    If $class <> "CabinetWClass" Then Return
    ; Get object linked to window
    Local $shell = ObjCreate("Shell.Application"), $window = 0
    For $object In $shell.Windows()
        If $object.HWND() = $handle Then
            $window = $object
            ExitLoop
        EndIf
    Next
    If $window = 0 Then Return
    ; Check active component (right filelist panel only)
    Local $control = ControlGetFocus($handle)
    If $control <> "DirectUIHWND3" Then Return
    ; Get selection (files selected in the right panel)
    Local $selected[1] = [0]
    For $element In $window.Document.SelectedItems()
        If $element.IsFolder Or $element.IsLink Then ContinueLoop
        Local $path = $element.Path
        For $i = 1 To $selected[0]
            If $path = $selected[$i] Then ContinueLoop 2
        Next
        $selected[0] = $selected[0]+1
        ReDim $selected[$selected[0]+1]
        $selected[$selected[0]] = $path
    Next
    ; Action : ###############################
EndFunc

1 个答案:

答案 0 :(得分:0)

青蛙! :o)我可以告诉你,你的英语比我的法语好很多,所以不要担心。

我认为您需要做的是创建自定义宏或VBScript以使用您想要的EXE打开文件。我自己对VBScript不是很了解,所以这部分我无法提供帮助。

至于您的其余请求,有关于如何执行此操作的说明on the Microsoft site。我会将它们粘贴在这里以防链接发生变化:

步骤1:下载当前版本的IntelliType软件

步骤2:启动键盘向导,然后更改分配

  1. 在“控制面板”中打开“键盘”项。

    • 在Windows 7或Windows Vista中,单击“开始”“开始”按钮,在“开始搜索”框中键入键盘,然后单击“程序”列表中的“键盘”(或Microsoft键盘)。
    • 在Windows XP和早期版本的Windows中,单击“开始”,单击“运行”,键入“控制键盘”,然后单击“确定”。
  2. 在“密钥设置”选项卡上,选择要更改的密钥。

  3. 要更改命令或程序分配,请单击“配置”。要更改或将宏指定给键,请单击“指定/管理宏”。
  4. 选择适当的选项,然后按照说明操作。
  5. 备注

    • 您可以通过添加适当的参数来指定对特定文档,网站或其他项目打开的程序。例如:

      • iexplore.exe http://www.msn.com:启动Microsoft Internet Explorer,并打开MSN.com网站
      • word.exe mydoc.doc:启动Microsoft Word,并打开mydoc文件
    • 使用“恢复默认值”删除所有自定义设置,然后重新启动所有分配。

    • 在“自定义密钥设置”下,您可以使用“选项”重命名每个银行,也可以使用“添加”为该程序添加自定义密钥分配程序。

    • 可以使用“分配/管理宏”按钮分配或更改宏。有关详细信息,请参阅“帮助”。

    This StackOverflow question也可以为您提供更多指导。

    此外,this question on another website表明它适用于VBScripts,并提供了VBScript的示例。我不打算复制/粘贴所有内容,它只是我上面写的内容的备份。