Вы должны войти, чтобы создавать сообщения и темы.

Утилита, чтобы открыть случайно закрытое окно windows

Привет!
Как известно, в браузерах можно по Ctrl+Shift+T открыть последнюю закрытую вкладку. Хотелось бы узнать, нет ли подобной утилиты для того, чтобы можно было открыть последнее закрытое окно в Виндовс? У меня бывает иногда, что, когда много открытых окон, тыкаю на крестик не того, какого надо.
Единственное, что я нашёл -- программка GoneIn60s, но она не особо удобная и к тому же не имеет быстрого сочетания клавиш, а работает по клику на иконку в трее.

Добрый🖐.
Тебе на explorer или на все окна, я только на explorer видел норм скрипт, а чтоб другие приложения открывать как последний открытый, то это только через запоминание окна и т.д., то есть это надо специально, запомнить ID окна в скрипт, а потом если ты его случайно закрыл то сможешь открыть, то есть это не удобно, когда случай случайный.

Лайкнули Олесь и Имир
ОлесьИмир
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Цитата: Mikhail от 19.01.2023, 15:52

Добрый🖐.
Тебе на explorer или на все окна, я только на explorer видел норм скрипт, а чтоб другие приложения открывать как последний открытый, то это только через запоминание окна и т.д., то есть это надо специально, запомнить ID окна в скрипт, а потом если ты его случайно закрыл то сможешь открыть, то есть это не удобно, когда случай случайный.

Хотелось бы на все. GoneIn60s восстанавливает любое окно и даже несохранённую инфу в нём (например, в блокноте), но он неудобен и к тому же порой ложно срабатывает, плодя какие-то странные белые окна-фантомы (наверное, лагает из-за двух рабочих столов, такое ощушение).

QTTabBar
Не совсем то, но можно добавить кнопку открытия последних закрытых вкладок, как в браузере. Да и прям с рабочего стола можно последние окна открывать, через контекстное меню. Там вроде можно даже порядок вкладок настраивать, алфавитный или по дате.

Лайкнул Олесь
Олесь

А на какую тебе горячую клавишу нужно восстановить окно?
Я просто могу к GoneIn60s добавить горячую клавишу и все.


И кстати он не срабатывает ложно, чтоб он сохранил окно нужно немного времени, секунд1-3, как только над крестиком появится сообщение про 60 секунд, значит он сохранил окно.

Лайкнули Олесь и Имир
ОлесьИмир
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Цитата: Mikhail от 19.01.2023, 16:33

А на какую тебе горячую клавишу нужно восстановить окно?
Я просто могу к GoneIn60s добавить горячую клавишу и все.


И кстати он не срабатывает ложно, чтоб он сохранил окно нужно немного времени, секунд1-3, как только над крестиком появится сообщение про 60 секунд, значит он сохранил окно.

Это было бы круто! Можно на Ctrl+T или на Alt+t -- вроде как ничем другим в винде такие сочетания не заняты. В общем, на любое+T.

Цитата: Евгений от 19.01.2023, 16:31

QTTabBar
Не совсем то, но можно добавить кнопку открытия последних закрытых вкладок, как в браузере. Да и прям с рабочего стола можно последние окна открывать, через контекстное меню. Там вроде можно даже порядок вкладок настраивать, алфавитный или по дате.

Что-то слишком сложное для одной функции, но я посмотрю, спасибо. Всё равно у меня есть уже пара сложных утилит, которых я юзаю просто ради одной-двух функций)

Держи, убрал еще всплывающее окно у курсора над крестиком программы про 60 сек и т.д., все остальное оригинал, Ctrl+T - сочетание.

Лайкнули Олесь и Имир
ОлесьИмир
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Цитата: Mikhail от 19.01.2023, 17:01

Держи, убрал еще всплывающее окно у курсора над крестиком программы про 60 сек и т.д., все остальное оригинал, Ctrl+T - сочетание.

Всё прекрасно работает, огромное спасибище!!

Лайкнул Mikhail
Mikhail

Mikhail, добрый день! Подскажите, пожалуйста, этот скрипт, который работает только на Скопированоexplorer! Искал такое, но не нашёл(
Спасибо за GoneIn60s! Это очень интересная вещь, но, к сожалению, не всегда подходит, так как она не закрывает программы сразу, а скрывает их на отведённое время

Mikhail, добрый вечер! Нашёл скрипт для поочерёдного восстановления закрытых окон Проводника!

#NoEnv
#Persistent
#SingleInstance Force
SetBatchLines, -1 ; Максимальная скорость выполнения скрипта

Menu, Tray, NoStandard
Menu, Tray, Add, Restore, Restore
Menu, Tray, Default, Restore
Menu, Tray, Add, Exit, Exit
Menu, Tray, Click, 1

Global ClosedFolders := []
Global CurrentExplorers := {}
Global ShellApp := ComObjCreate("Shell.Application") ; Создаем объект один раз

UpdateExplorers()
SetTimer, WatchExplorers, 800 ; 800мс достаточно для комфортной работы без нагрузки
return

Restore:
    if (ClosedFolders.Count() > 0) {
        PathToRestore := ClosedFolders.Pop()
        Run, explorer.exe "%PathToRestore%"
    }
return

WatchExplorers() {
    NewExplorers := {}
    ; Перебор окон через существующий объект ShellApp
    for window in ShellApp.Windows {
        try {
            path := window.Document.Folder.Self.Path
            hwnd := window.hwnd
            if (path)
                NewExplorers[hwnd] := path
        }
    }

    ; Проверка закрытых окон
    for hwnd, path in CurrentExplorers {
        if (!NewExplorers.HasKey(hwnd)) {
            ; Добавляем в историю, только если пути еще нет в конце (избегаем дублей при обновлении окон)
            if (ClosedFolders[ClosedFolders.MaxIndex()] != path) {
                ClosedFolders.Push(path)
                if (ClosedFolders.Count() > 10)
                    ClosedFolders.RemoveAt(1)
            }
        }
    }
    CurrentExplorers := NewExplorers
}

UpdateExplorers() {
    for window in ShellApp.Windows {
        try {
            path := window.Document.Folder.Self.Path
            if (path)
                CurrentExplorers[window.hwnd] := path
        }
    }
}

Exit:
ExitApp