mitiya
18-03-2008, 01:47
смысл вот в чем :
для перепаковки программы беру ее ветку реестра , а там в некоторых ключах прописан путь к той папке куда установлена программа.
Соответственно для того чтобы перепакованая прога могла ставится куда угодно надо в reg файле пред его запуском заменить путь.
Сначала мне это козалось не сложной задачей и я сделал следующие:
Взял reg (install.reg) файл заменил в нем абсолютный путь (к примеру c:\programs\prog) на просто слово instPath получилось примерно следующие
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ABC]
[HKEY_LOCAL_MACHINE\SOFTWARE\ABC\prog]
"Install_Path"="instPath\\folder"
потом написал батник следующего вида
copy install.reg tempinstall.reg
CHGSTR.EXE instPath %cd% tempinstall.reg
regedt32.exe /s tempinstall.reg
и казалось бы все должно работать, но увы . Дело в том что в reg файле почему-то пути идут с "\\" а %cd% выдает туь с "\" и в результате
путь в tempinstall.reg выглядит как c:\programs\prog\\folder , а должен как c:\\programs\\prog\\folder .
В таком простом примере как я привел конечно проще задать путь командой REG напрямую в реестр, но все же в тех случаях когда путей значительно больше было бы гораздо удобней пользоваться вышеуказанным способом , но вот как из c:\programs\prog\\folder получить c:\\programs\\prog\\folder я не знаю.
для перепаковки программы беру ее ветку реестра , а там в некоторых ключах прописан путь к той папке куда установлена программа.
Соответственно для того чтобы перепакованая прога могла ставится куда угодно надо в reg файле пред его запуском заменить путь.
Сначала мне это козалось не сложной задачей и я сделал следующие:
Взял reg (install.reg) файл заменил в нем абсолютный путь (к примеру c:\programs\prog) на просто слово instPath получилось примерно следующие
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ABC]
[HKEY_LOCAL_MACHINE\SOFTWARE\ABC\prog]
"Install_Path"="instPath\\folder"
потом написал батник следующего вида
copy install.reg tempinstall.reg
CHGSTR.EXE instPath %cd% tempinstall.reg
regedt32.exe /s tempinstall.reg
и казалось бы все должно работать, но увы . Дело в том что в reg файле почему-то пути идут с "\\" а %cd% выдает туь с "\" и в результате
путь в tempinstall.reg выглядит как c:\programs\prog\\folder , а должен как c:\\programs\\prog\\folder .
В таком простом примере как я привел конечно проще задать путь командой REG напрямую в реестр, но все же в тех случаях когда путей значительно больше было бы гораздо удобней пользоваться вышеуказанным способом , но вот как из c:\programs\prog\\folder получить c:\\programs\\prog\\folder я не знаю.