Утилита или команда для сохранения всех открытых экземпляров Блокнота где-либо

Утилита или команда для сохранения всех открытых экземпляров Блокнота где-либо

Время от времени я ловлю себя на том, что использую Notepad вместо Notepad++ или лучшего редактора. Иногда я даже помещаю важные вещи в эти окна блокнота.

Когда приходит время перезагрузить мой ПК, у меня часто бывает до 20 открытых экземпляров блокнота. Конечно, большинство из них бесполезны, но мне приходится сканировать каждый, чтобы увидеть, есть ли что-то стоящее сохранения.

Есть ли какая-либо утилита или команда, которая могла бы выполнить любое из следующих действий:

  1. Сохраните все открытые блокноты в один файл
  2. Сохранение всех открытых блокнотов в файлы с именами по умолчанию
  3. Сохраните экземпляры блокнота в памяти на диске, чтобы они запускались при перезагрузке

решение1

Да, естьAutoHotKeyинструмент, подходящий для такой задачи.

Вы можете создать макрос, который будет повторяться

  1. фокусирует любое окно со словом Notepadв заголовке (или выходит, если такое окно не найдено)
  2. отправляет Ctrl+ Sдля сохранения файла
  3. ждет несколько секунд
  4. если он обнаруживает (опять же по названию) открытое диалоговое окно «Сохранить как» (то есть в случае сохранения нового файла), он заполняет некоторое пронумерованное имя файла по умолчанию (отправляя нажатия клавиш) и отправляет Alt+ Sдля нажатияСохранятькнопка в диалоге
  5. добавляет команду notepad <filename>в restore-notepads.batфайл
  6. отправляет Alt+ F4для закрытия экземпляра Блокнота
  7. повторить.

то вы можете добавить restore-notepads.batв свойЗапускатьменю, и вы обнаружите наличие функции, которую вы описали как «3. Сохранение экземпляров блокнота в памяти на диске, чтобы они запускались при перезагрузке».

решение2

Я использую блокнот как временное хранилище текста, так как никакая другая программа не запускается быстрее. Чтобы сохранить или сделать резервную копию содержимого экземпляров блокнота, я написал код AHK. Он в основном основан на ответе miroxlav, но мне не нужно восстанавливать.

Итак, вот код.

+!s:: ;Save all notepad instance

    ClipSaved := ClipboardAll 

    LastClip := ""
    WinGet, id, list, *Untitled - Notepad, ,, ;[1]
    Loop, %id%
    {
        this_id := id%A_Index%
        WinActivate, ahk_id %this_id%
        Send ^A
        Send ^C
        Sleep 500
        WinMinimize, ahk_id %this_id%
        WinGetClass, this_class, ahk_id %this_id%
        WinGetTitle, this_title, ahk_id %this_id%
        LastClip = %LastClip% `r`n-------`r`n %ClipBoard% ;[2]
        ToolTip , Saving All Untitled Notepad Instances `n%a_index% of %id%`nahk_id %this_id%`nahk_class %this_class%`n%this_title%`n
    }

    ClipBoard := LastClip
    ; ToolTip , %ClipBoard%

    Run notepad.exe
    Sleep 1000
    Send ^V
    Sleep 1000

    Clipboard := ClipSaved  
    ClipSaved = 

    #Persistent
    ToolTip, Done
    SetTimer, RemoveToolTip, 2500
    return

    RemoveToolTip:
    SetTimer, RemoveToolTip, Off
    ToolTip
    return

return

Сохраните код в .ahkфайл, запустите его, и после нажатия Alt+Shift+Sвсе содержимое безымянного экземпляра блокнота должно быть объединено в одно новое окно блокнота.

Примечание:

  • [1] Если вы хотите сохранить все экземпляры блокнота, а не только безымянный, измените на , *Untitled - Notepadэто ahk_exe notepad.exeдолжно сработать.
  • [2] Это для отдельной строки.

Хотя этот ответ пришел спустя 5 лет, я все равно надеюсь, что он вам поможет.

Связанный контент