Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

kIT Portable Launcher
Goto page Previous  1, 2, 3, 4  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение printer-friendly view
View previous topic :: View next topic  
Author Message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Aug 18, 2011 22:37    Post subject: Reply with quote

ApceH wrote:
Хватит флудить!
Действительно, поддерживаю самокритику, хватит! Сколько уже можно? Very Happy
ApceH wrote:
Очевидно, что имеются в виду ключи, которые будут внесены перед запуском программы.
Кем или чем будут внесены? Если автоматически, то меня это устроит.
Back to top
View user's profile Send private message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Thu Aug 18, 2011 22:43    Post subject: Reply with quote

Flasher
Ну, конечно, автоматически! Как ещё???
Думаю будет так.
Вместо ключа /u будем указывать /b <имя_reg-файла_backup-а>.
Перед запуском указанной проги, сохраняем имеющиеся затрагиваемые ключи в backup-файл.
После окончания выполнения проги не просто удаляем ключи (как при ключе /u), а вносим backup-овский reg-файл.

Так я всё понял?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Aug 18, 2011 22:51    Post subject: Reply with quote

А как программа может сохранить ключи перед запуском, если они ей заведомо неизвестны? Что-то типа того, что делает RegWorks в истории изменений? Т.е. тут нужен какой-то встроенный сканер реестра как у RegMon.
Back to top
View user's profile Send private message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Thu Aug 18, 2011 23:21    Post subject: Reply with quote

Flasher
Я ключ /b добавлю с целью обеспечения функциональности, предложенной Batya.
Какой-либо мониторинг изменений реестра в kitrun вряд ли появится в ближайшие месяцы. Не для этого он создан.
А ключи, которые нужно сохранить как раз известны. Они будут извлечены из reg-файла, который пользователь указывает при запуске обязательными параметром.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Aug 18, 2011 23:27    Post subject: Reply with quote

Ну, и для чего я это писал?:
Flasher wrote:
Откуда мне заведомо знать, куда она там чего прописывает? Нужно именно отслеживание без лишних потуг юзера с поисками в реестре.

ApceH wrote:
Ну, конечно, автоматически! Как ещё???
Увы, вот так -
ApceH wrote:
пользователь указывает при запуске
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Fri Aug 19, 2011 09:04    Post subject: Reply with quote

Для защиты реестра можно быстренько на ThinApp "сбацать" вполне скромную песочницу (в пределах мегабайта), которая будет виртуалить реестр и нужные папки в папку рядом с собой) а начальные установки могут быть получены запуском регедита в этой песочнице) или просто копированием рег-файла песочницы после запуска оного.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Fri Aug 19, 2011 10:44    Post subject: Reply with quote

MVV
Внутри песочницы прога будет под админом (с повышением)?
Я вот и говорю, что моя 10 КБ-ая прожка совсем не для этого.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Fri Aug 19, 2011 11:25    Post subject: Reply with quote

Она будет внутри песочницы так, как запустишь песочницуSmile и как правило внутри песочниц права админа не сильно рекомендуются. Но писать программы смогут и в LOCAL_MACHINE - в виртуальный.

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

И никаких конфликтов, связанных с существованием ключа с другим содержимымSmile
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Mon Aug 22, 2011 14:58    Post subject: Версия 1.2 Reply with quote

Обновил программку.

Добавлен ключ /U и реализован ключ /u
Для запускаемой программы устанавливается рабочая папка, равная рабочей папке kitrun.exe
Исправлена ошибка с обработкой параметров.
Запрещён feedback-эффект курсора для самого kitrun.exe.


Last edited by ApceH on Sat Aug 27, 2011 01:40; edited 1 time in total
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Tue Aug 23, 2011 10:08    Post subject: Reply with quote

ApceH wrote:
Если задан параметр /u или /e, дождаться завершения запущенной программы, затем удалить из реестра ключи, внесенные указанным reg-файлом (если /u) или config.regзатронутые ветки полностью (если /e).
файлом и ключ, указанный в параметре /k (если задан).

Что-то конец фразы (из шапки) не по-русски.

/u - это не то же самое, что предполагается через /b?
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Tue Aug 23, 2011 11:52    Post subject: Reply with quote

Batya
Опечатка. Исправил. Спасибо.
С /u просто удаляются внесённые ключи. Причём только внесённые. Используется обычный вызов RegDeleteKey, который не может удалить ключ, имеющий подключи. При удалении запомненные внесённые ключи перебираются в обратном порядке. Невозможность удаления не является ошибкой. Поэтому ключи, созданные программой уже во время запуска не удаляются.
А /U действует жёстче. При запоминании вносимых ключей их имена (пути) обобщаются/сливаются. То есть в конце обработки reg-файла в списке остаются самые высокоуровневые ключи. Например, HKCU\Software\MyProg.
А в /b (backup) очевидно должно будет сначала сохранятся имеющееся значение, а потом уже замещаться.
Quote:
файлом и ключ, указанный в параметре /k (если задан).

Этой фразы уже нет в ридми последнем. Я решил не удалять ключ, указанный через /k ни при /u, ни при /U. Если это нужно, можно чуть подправить reg-файл, внести туда первой строкой этот ключ, а из параметров /k убрать.

MVV
Quote:
Но реестр песочница определенно лучше защитит ото всех изменений, вносимых программой.
Естественно. Но у меня такая цель не стоит. Кагбэ применяю к нормальным программам, от которых не жду зла. Главное, чтобы их можно было копировать просто (или устанавливать в составе сборки), не требуя админ-прав для внесения reg-файлов (как при использовании regedit.exe и reg.exe).

Last edited by ApceH on Sat Aug 27, 2011 01:40; edited 1 time in total
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Fri Aug 26, 2011 15:57    Post subject: Reply with quote

Хорошая утилитка, и будет неплохо если она продолжит развитие.
Что еще хотелось бы видеть в плане минимальной "портабельности":
1. Возможность создавать бэкап ключа и восстановления его после работы программы. Скажем, в системе установлена и настроена программа, есть записи в реестре. А тут мы со своим Тоталом запускаем копию этой программы и затираем реестр. Потому нужна опциональная возможность сохранять существующий ключ реестра, внести свои записи, а после отработки программы - удалить свои записи и восстановить изначальное значение реестра.
2. Возможность сохранять ключи реестра в процессе работы. То есть мы внесли ключ реестра из файла Key.reg (который ллежит в папке с программой), поработали с программой, записи в реестре изменились, и при закрытии программы получившийся ключ реестра с новыми настройками записывается обратно в файл Key.reg.

3. Некоторые программы лезут не только в реестр, но и в системные папки, например, в Мои документы или AppData\Roaming\.
Неплохо бы реализовать возможность сохранять-удалять-восстанавливать данные из системных папок. Пожелания - аналогично реестру:
- возможность удалять папку после закрытия программы
- возможность при закрытии программы бэкапить данные в папку с программой (и при запуске программы - восстанавливать эти данные)
- возможность бэкапить имеющиеся в папке данные и восстанавливать их после окончания работы программы.
Back to top
View user's profile Send private message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Fri Aug 26, 2011 17:01    Post subject: Reply with quote

LonerD
Very Happy Как раз сижу, пишу код (правда kIT UP). Но так и быть, доделаю этот функционал.
Сделаю и пункт 1 (/b), и пункт 2.
А пункт 3 пока подождёт...

Внимание!
Выложил 1.3 со следующими исправлениями:
  • Ключ /e переименован в /U в целях унификации с ключами /b и /s.
  • Сообщение "Wrong usage!" дополнено открытием в фоне readme.txt.
Надеюсь переименование никому не доставит серьёзных неудобств Smile
Back to top
View user's profile Send private message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Sun Aug 28, 2011 00:44    Post subject: Reply with quote

Обновил до 1.4:
Исправлена ошибка, из-за которой /u выполнялся даже, если ключи не были импортированы (т.к. уже были в реестре и /f не задан).
Добавлены ключи /p и /P.
Во всех строках, потенциально содержащих пути, заменяются переменные окружения. Т.е. во всех, кроме аргумента параметра /k, в том числе в параметрах запускаемой программы.


Last edited by ApceH on Mon Aug 29, 2011 22:39; edited 2 times in total
Back to top
View user's profile Send private message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Mon Aug 29, 2011 22:38    Post subject: 1.7 Reply with quote

Фух! Похоже сделал, всё что нужно. Осталось только отловить баги, и всех прошу с этим помочь!

Выложил 1.7:
Реализованы параметры /b, /B (это бэкап в файл)
Реализованы параметры /s, /S (это сохранение в файл после работы проги)
Реализованы параметры /r, /R (это восстановление после работы проги как было)
Реализованы параметры /d, /D (это удаление перед импортом, чтобы песочница была чистой)

Будем считать эту RC-версией. Потому, что если багов нет, то на ближайшие месяц-другой разработка kIT Portable Launcher приостановится.

Скачать. SHA1: bcd2a1cf2cc50ca7c82a9b15897ba0244389110e

LonerD wrote:
2. Возможность сохранять ключи реестра в процессе работы. То есть мы внесли ключ реестра из файла Key.reg (который ллежит в папке с программой), поработали с программой, записи в реестре изменились, и при закрытии программы получившийся ключ реестра с новыми настройками записывается обратно в файл Key.reg.
Вот теперь запросто данный сценарий реализуется. В readme есть пример:
Quote:
kitrun /f /p /D /U /R /S putty.reg putty.reg path\putty.exe
— если предположить, что рядом с kitrun.exe лежит putty.reg, то данная строка запуска обеспечивает некую ПЕСОЧНИЦУ, притом чистую. PuTTY будет запущен с настройками, взятыми из putty.reg, а после его завершения соответствующая ветка будет возвращена в исходное состояние. Большая буква S обеспечивает сохранение даже новых ключей, созданных в процессе работы программы.
...
— Если в качестве основного reg-файла и файла параметра /b (или /B) указан один и тот же файл, то сохранение в него текущих значений произойдёт ПОСЛЕ его прочтения для импорта. То есть старые и новые значения поменяются местами. ...
— Параметр /s (или /S), очевидно, тоже срабатывает после чтения reg-файла для импорта, и если здесь указан тот же reg-файл, что и в качестве основного, то можно от запуска к запуску изменять и дополнять reg-файл, связанный с программой. А в сочетании с ключом /r можно создать некое подобие портативного профиля (песочницы), не зависящего от настроек текущего пользователя и не влияющего на них.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4  Next
Page 2 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group