【问题标题】:AutoHotKey Shortcut to Create New File in Windows 8在 Windows 8 中创建新文件的 AutoHotKey 快捷方式
【发布时间】:2014-04-30 06:17:49
【问题描述】:

前段时间,我在网上找到了一个脚本,它提供了创建新文件的快捷方式。它非常适合我运行 Windows 7 的计算机:

#IfWinActive, ahk_class CabinetWClass
#n:: ;If Windows+N is pressed in Windows Explorer
Send {Alt} ;Menu
Send f ;> File
Send w ;> New
Send t ;select Text Document
Send ^a ;select all
Exit

此脚本不适用于我运行 Windows 8 的新笔记本电脑。只是想知道是否有人知道这是为什么,是否可以进行快速编辑以使其工作?感谢您的帮助!

【问题讨论】:

    标签: windows keyboard-shortcuts autohotkey


    【解决方案1】:

    我想我实际上想出了适用于所有环境(Windows 7 和 8)的东西:

    #n::
        Send {AppsKey}
        Send w
        Send t
        Sleep, 400
        Send ^+{Right}
        Send {Del}
    return
    

    我必须在那里添加睡眠,因为它似乎试图在文件有时间创建之前运行正在进行的代码。但这似乎完成了我所需要的。

    【讨论】:

      【解决方案2】:

      这是由于 Win 8 资源管理器的菜单布局发生了变化。在我的机器上,如果您在资源管理器中按 Alt,您将在相应菜单旁边获得按钮的叠加图像,这些图像将在菜单导航期间更新。您想进入菜单Home,然后选择New item。在我的机器上,这就是键序列 AltRW。但随后选择text file(如T)的快捷方式似乎不存在。另一方面,AHK 可以在不依赖资源管理器菜单的情况下做你想做的事,但这需要一些编码:

      #IfWinActive, ahk_class CabinetWClass
      #n::
          ControlGetText, dir, ToolbarWindow323
          RegExMatch(dir, ":(.*)", dir)
          dir := Trim(dir1)
          FileAppend, , %dir%\MyNewTextFile.txt
      return
      

      唯一的缺点是它本身不适用于您通过资源管理器中的“收藏夹”或“库”打开的文件夹。但是,如果您需要它们,您仍然可以为此编写解决方法。

      【讨论】:

      • 感谢您的回复。它有效,但就像你说的,只在某些情况下。我是否需要为每个单独的文件夹(桌面、收藏夹等)编写解决方法,或者是否有一种方法可以编写一个单一的解决方法,使其适用于所有这些?另外,有没有办法让它以可编辑的文件名和选择的所有文本结束?再次感谢,我真的很感激。
      • @Joe 1) 据我所知,您必须手动将这些文件夹映射到它们的路径,但这很简单而且很快就完成了。 2) 当然,您可以根据需要命名文件。 3)“选择所有文本”是什么意思?
      • “选择所有文本”是指按下快捷方式后,新文件不会被命名为“MyNewTextFile.txt”,快捷方式将以文件名的所有文本结束,无论是“MyNewTextFile.txt”还是“new text document.txt”都被选中,所以我可以快速命名文件,无论我需要什么。基本上相当于如果您右键单击并选择重命名文件。这就是我在上面发布的原始快捷方式的工作方式。再次感谢您的所有回复。
      • @Joe 例如,您可以通过弹出Inputbox 来实现这一点,或者使用Input 盲目地输入它。使用Input 的一个很酷但稍微复杂一点的方法是更新每个按键的文件名。无论如何,您似乎已经使用右键菜单找到了自己的解决方案。请注意 a) 这取决于鼠标位置(例如,当鼠标悬停在文件上时,它不会为您提供创建新文件的选项)和 b) 如果菜单需要更长的时间才能出现(尤其是这种情况之前更改时),后续密钥可能发送得太早。
      • 再说一次,如果你的解决方案适合你,我猜我们都很高兴 =)
      【解决方案3】:

      这适用于 Windows 10。

      ctrl+shift+M创建NewFile.txt

      #NoEnv
      SendMode Input
      SetWorkingDir %A_ScriptDir%
      
      #IfWinActive ahk_class CabinetWClass
      ^+m::
          newFileHere()
          return
      #IfWinActive
      
      newFileHere(){
      WinHWND := WinActive()
      For win in ComObjCreate("Shell.Application").Windows
          If (win.HWND = WinHWND) {
              dir := SubStr(win.LocationURL, 9) ; remove "file:///"
              dir := RegExReplace(dir, "%20", " ")
              Break
          }
      
      file = %dir%/NewFile.txt
      if FileExist(file)
      {
          MsgBox, NewFile.txt already exists
          return
      }
      FileAppend,, %file%  ; create new file
      }
      

      【讨论】:

        猜你喜欢
        • 2013-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-14
        • 1970-01-01
        • 1970-01-01
        • 2020-11-18
        相关资源
        最近更新 更多