Войти

Показать полную графическую версию : Поиск ключей реестра, созданных программой.


MKN
21-02-2012, 15:57
Необходимо найти ключи реестра (все или конкретно заданные), которые появятся после (или при) запуска заданной конкретной программы. И записать листинг этих ключей в лог файл.
Аналогичное действие вроде как делает утилита RegFromApp от nirsoft.
Т.е. запускаем RegFromApp.exe /RunProcess "f:\temp\myprocess.exe" /AutoSave "f:\temp\reg_modified.reg" "f:\temp\reg_original.reg" и мониторим реестр...
Но не тут то было, работает эта утилита крайне не устойчиво, и на половину запускаемого ПО совсем не реагирует...

Так вот, как бы сделать скрипт для этой задачи ?

Сравнение реестра до и после установки - не годится. И этого не нужно для поставленной задачи. Может надо использовать функции
FindFirstChangeNotification и RegNotifyChangeKeyValue или ещё как мониторить API-вызовы...

ferget
21-02-2012, 16:48
попробуйте RagSnap, RegShot

MKN
21-02-2012, 16:49
ferget,
Этот утиль сравнивает реестр до и после - уже не то. Минус ко всему у него нет командной строки...

ferget
21-02-2012, 16:55
тогда ProcessMonitor
http://technet.microsoft.com/en-us/sysinternals/bb896645

Iska
21-02-2012, 17:17
Т.е. запускаем RegFromApp.exe /RunProcess "f:\temp\myprocess.exe" /AutoSave "f:\temp\reg_modified.reg" "f:\temp\reg_original.reg" и мониторим реестр...
Но не тут то было, работает эта утилита крайне не устойчиво, и на половину запускаемого ПО совсем не реагирует... »
Отпишитесь автору по этому поводу (с конкретностями, конечно). Он вполне адекватен на этот счёт.

MKN
21-02-2012, 17:20
ferget,
Тоже пробовал. И тоже не подарок... Потому что мониторит всё подряд (не только создаваемые, но и обращение к ключам и т.д., что совершенно не нужно) , сохраняет в лог собственного формата, который потом приходится конвертить для удобоваримости.
Некоторые команды почему то не работают...
К примеру, если запустить так :
set PM=C:\ProcessMonitor\procmon.exe
start %PM% /quiet /minimized /backingfile C:\ProcessMonitor\MyApp.pml
%PM% /waitforidle
start /wait E:\MyApp.exe
%PM% /Terminate
%PM% /Terminate - не работает.

Iska,
Попробую связаться...
А есть ли скриптовой способ для решения задачи ?




© OSzone.net 2001-2012