Что нового

Открытие файла в предыдущей сессии SciTE

Mancoffee

Свет проталкивает тьму ...
Сообщения
86
Репутация
1
Если открываю файл, к примеру Tray.au3, то он открывается в новой сессии SciTE, то есть предыдущих открытых нет. Если же при открытом SciTE, то тогда добавляется к текущей сесии в новой вкладке. Как сделать, чтобы и при закрытой программе файлы открывались в предыдущей сесии с добавлением в новой вкладке открываемого файла?

Это читал, всё включено
Сессия представляет собой список файлов. Все вкладки, отображенные на экране, можно сохранить как сессию, чтобы в будущем их можно было быстро загрузить. Сессии сохраняются как файлы настроек с расширением ".session".

Для загрузки/сохранения сессий используются команды меню "Файл | Загрузить сессию" (File | Load Session) и "Файл | Сохранить сессию" (File | Save Session). При помощи свойства SciTE save.session можно включить/отключить автозагрузку последней сессии.

При установке save.session=1 SciTE при закрытии автоматически сохраняет список открытых в текущей сессии файлов в файле SciTE.session, расположенном по умолчанию в каталоге, определяемом переменной окружения %USERPROFILE% (обычно это c:\Documents and Settings\username\SciTE.session).
По этому же пути SciTE и загружает сессию при следующем старте (при save.session=1).

Файл сессии хранит информацию об имени файла и позиции курсора, а также (при session.bookmarks=1) о расположении меток и (session.folds=1) о состоянии фолдинга (сворачивания кода).

Свойство buffers, равное 0, отключает управление сессиями.

Загрузка ранее сохраненной сессии закрывает открытые вкладки, однако при этом вы не потеряете отредактированные вами данные, поскольку программа вначале предложит сохранить измененные файлы.

Открытие файла из командной строки аннулирует действие свойства save.session. Если вы запускаете SciTE посредством загрузки файла из командной строки, прошлая сессия не восстановится, даже если свойство save.session равно 1. Таким образом, свойство save.session является безопасным для использования в том смысле, что вы не откроете несколько файлов, если хотите открыть только один.

Файл, открываемый с помощью командной строки, уничтожает предыдущую сессию. Чтобы этого не происходило, можно поступить следующим способом: сначала запустить SciTE (SciTE при save.session=1 автоматически откроет предыдущую сессию), а затем уже добавить в SciTE файл любым удобным способом (перетаскиванием, через меню "Файл" или с помощью командной стоки). В этом случае открываемый файл не уничтожит текущую сессию, а добавится к ней.

При установке session.bookmarks=1 и session.folds=1 бумарки и состояние фолдинга всех открытых файлов будут сохранены в файле SciTE.session, откуда затем будут восстановлены при следующем старте.
В реестре прописано так
Код:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.au3]
@="AutoIt Script"

[HKEY_CLASSES_ROOT\AU3]
@="AutoIt Script"

[HKEY_CLASSES_ROOT\AU3\DefaultIcon]
@="d:\\Programs\\TotalCommander\\Launching\\Scripts\\AutoIt\\Portable\\SciTE\\SciTE.exe"

[HKEY_CLASSES_ROOT\AU3\Shell]
@="Открыть в SciTE"

[HKEY_CLASSES_ROOT\AU3\Shell\Open]

[HKEY_CLASSES_ROOT\AU3\Shell\Open\command]
@=\"d:\\Programs\\TotalCommander\\Launching\\Scripts\\AutoIt\\Portable\\SciTE\\SciTE.exe %1\"
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
#include 'scite.au3'
If Not WinExists('[Class:SciTEWindow]') Then _SciTE_Open()
WinActivate(WinWait('[Class:SciTEWindow]'))
_SciTE_OpenFile($sOpenFile)

scite.au3 где-то есть у нас на форуме.
 
Автор
Mancoffee

Mancoffee

Свет проталкивает тьму ...
Сообщения
86
Репутация
1
sngr
Что с ним делать? Скомпилировать и в реестре назначить не SciTE.exe, а скомпилированную exe-шку?
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
#include 'scite.au3'
Select
	Case Not $cmdline[0]
		Exit
EndSelect
Select
	Case Not WinExists('[Class:SciTEWindow]')
		_SciTE_Open()
		_SciTE_LoadSession('c:\SciTE.session');файл сессии
WinActivate(WinWait('[Class:SciTEWindow]'))
EndSelect
_SciTE_OpenFile($cmdline[1])

ты сначала посмотри, то ли это, что тебе надо. Этот код можно компилировать и писать в реестр.
 
Верх