View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Aug 18, 2011 22:37 Post subject: |
|
|
ApceH wrote: | Хватит флудить! | Действительно, поддерживаю самокритику, хватит! Сколько уже можно?
ApceH wrote: | Очевидно, что имеются в виду ключи, которые будут внесены перед запуском программы. | Кем или чем будут внесены? Если автоматически, то меня это устроит. |
|
Back to top |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Thu Aug 18, 2011 22:43 Post subject: |
|
|
Flasher
Ну, конечно, автоматически! Как ещё???
Думаю будет так.
Вместо ключа /u будем указывать /b <имя_reg-файла_backup-а>.
Перед запуском указанной проги, сохраняем имеющиеся затрагиваемые ключи в backup-файл.
После окончания выполнения проги не просто удаляем ключи (как при ключе /u), а вносим backup-овский reg-файл.
Так я всё понял? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Aug 18, 2011 22:51 Post subject: |
|
|
А как программа может сохранить ключи перед запуском, если они ей заведомо неизвестны? Что-то типа того, что делает RegWorks в истории изменений? Т.е. тут нужен какой-то встроенный сканер реестра как у RegMon. |
|
Back to top |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Thu Aug 18, 2011 23:21 Post subject: |
|
|
Flasher
Я ключ /b добавлю с целью обеспечения функциональности, предложенной Batya.
Какой-либо мониторинг изменений реестра в kitrun вряд ли появится в ближайшие месяцы. Не для этого он создан.
А ключи, которые нужно сохранить как раз известны. Они будут извлечены из reg-файла, который пользователь указывает при запуске обязательными параметром. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Aug 18, 2011 23:27 Post subject: |
|
|
Ну, и для чего я это писал?: Flasher wrote: | Откуда мне заведомо знать, куда она там чего прописывает? Нужно именно отслеживание без лишних потуг юзера с поисками в реестре. |
ApceH wrote: | Ну, конечно, автоматически! Как ещё??? | Увы, вот так - ApceH wrote: | пользователь указывает при запуске |
|
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Fri Aug 19, 2011 10:44 Post subject: |
|
|
MVV
Внутри песочницы прога будет под админом (с повышением)?
Я вот и говорю, что моя 10 КБ-ая прожка совсем не для этого. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Mon Aug 22, 2011 14:58 Post subject: Версия 1.2 |
|
|
Обновил программку.
Добавлен ключ /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 |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Tue Aug 23, 2011 10:08 Post subject: |
|
|
ApceH wrote: | Если задан параметр /u или /e, дождаться завершения запущенной программы, затем удалить из реестра ключи, внесенные указанным reg-файлом (если /u) или config.regзатронутые ветки полностью (если /e).
файлом и ключ, указанный в параметре /k (если задан). |
Что-то конец фразы (из шапки) не по-русски.
/u - это не то же самое, что предполагается через /b? _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Tue Aug 23, 2011 11:52 Post subject: |
|
|
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 |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Fri Aug 26, 2011 15:57 Post subject: |
|
|
Хорошая утилитка, и будет неплохо если она продолжит развитие.
Что еще хотелось бы видеть в плане минимальной "портабельности":
1. Возможность создавать бэкап ключа и восстановления его после работы программы. Скажем, в системе установлена и настроена программа, есть записи в реестре. А тут мы со своим Тоталом запускаем копию этой программы и затираем реестр. Потому нужна опциональная возможность сохранять существующий ключ реестра, внести свои записи, а после отработки программы - удалить свои записи и восстановить изначальное значение реестра.
2. Возможность сохранять ключи реестра в процессе работы. То есть мы внесли ключ реестра из файла Key.reg (который ллежит в папке с программой), поработали с программой, записи в реестре изменились, и при закрытии программы получившийся ключ реестра с новыми настройками записывается обратно в файл Key.reg.
3. Некоторые программы лезут не только в реестр, но и в системные папки, например, в Мои документы или AppData\Roaming\.
Неплохо бы реализовать возможность сохранять-удалять-восстанавливать данные из системных папок. Пожелания - аналогично реестру:
- возможность удалять папку после закрытия программы
- возможность при закрытии программы бэкапить данные в папку с программой (и при запуске программы - восстанавливать эти данные)
- возможность бэкапить имеющиеся в папке данные и восстанавливать их после окончания работы программы. |
|
Back to top |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Fri Aug 26, 2011 17:01 Post subject: |
|
|
LonerD
Как раз сижу, пишу код (правда kIT UP). Но так и быть, доделаю этот функционал.
Сделаю и пункт 1 (/b), и пункт 2.
А пункт 3 пока подождёт...
Внимание!
Выложил 1.3 со следующими исправлениями:
- Ключ /e переименован в /U в целях унификации с ключами /b и /s.
- Сообщение "Wrong usage!" дополнено открытием в фоне readme.txt.
Надеюсь переименование никому не доставит серьёзных неудобств |
|
Back to top |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Sun Aug 28, 2011 00:44 Post subject: |
|
|
Обновил до 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 |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Mon Aug 29, 2011 22:38 Post subject: 1.7 |
|
|
Фух! Похоже сделал, всё что нужно. Осталось только отловить баги, и всех прошу с этим помочь!
Выложил 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 |
|
|
|
|
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
|