Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Наборы обновлений для Windows XP/2003/Windows 7 (http://forum.oszone.net/forumdisplay.php?f=62)
-   -   [решено] Проблема с ключами в реестре (http://forum.oszone.net/showthread.php?t=84065)

DJ Electronic 15-05-2007 11:29 587058

Проблема с ключами в реестре
 
Вобщем у меня назревал давно такой вопрос может где то это и было но счас искать бесполезно вобем имеем ключ:

@="\"C:\\WINDOWS\\папка с прогой\\прога.exe\" /F \"%1\\\""

Как его отвязать от диска? я же не могу создавать аддон только для диска С если потом кто нить винду на D поставит то работать не будет но переменные или как их назвать вроде %SYSTEMROOT% и тд...в реестре не работают! в некоторых местах работало так:
@="\"\\WINDOWS\\папка с прогой\\прога.exe\" /F \"%1\\\"" но в этом случае команда вызывается из контекстного меню файла и выдаёт ошибку! подскажите как быть, может через sysoc как получится (тоесть в inf файле это проще будет сделать)

zuckij 15-05-2007 11:51 587066

DJ Electronic попробуй так
Код:

REGEDIT4   
[HKEY_CURRENT_USER\Software\прога.exe] 
@="\"%SYSTEMROOT%\\папка с прогой\\прога.exe\" /F \"%1\\\""


DJ Electronic 15-05-2007 12:06 587077

zuckij, не работает! вобще то реестр не понимает %SYSTEMROOT% .... даже если запуск программы прописывать в автозапуск !!!!

dimich22 15-05-2007 12:50 587093

DJ Electronic
Я бы посоветовал воспользоваться утилитой Reg.exe, входящей в набор утилит Windows 2000 Support Tools
Отдельно можно скачать здесь

jameszero 15-05-2007 13:09 587105

reg.exe входит в дистрибутив Windows XP
Пример использования можно посмотреть здесь

DJ Electronic 15-05-2007 13:27 587112

jameszero, только написать хотел, только вот мне от этого не жарко не холодно:

Цитата:

REG ADD HKCR\*\shell\changeIcon\command /v @ /t REG_SZ /d ""%SYSTEMROOT%\прога\прога.exe" /F "%1\""
Всё рано значение то всталяется с %SYSTEMROOT% не то что мне нужно! вот если бы переменную обрабатывала команда REG тогда другое дело тоесть превращала %SYSTEMROOT% в C:\WINDOWS\ эх нету видно решения у этой проблемы!

dimich22 15-05-2007 13:29 587113

Вообще да. Я ей просто пользуюсь еще с Windows 2000

DJ Electronic 15-05-2007 13:40 587122

кстати ещё и /v @ неверно работает! как пустоту то вставлять! в reg файлах значение по умолчанию @ а тут без папраметра вобще или просто /v команда неверно обрабатывается!

dimich22 15-05-2007 13:49 587128

Для всех - reg /?
Чтобы добавить параметр по умолчанию используйте ключ /ve

YuriPet 15-05-2007 13:59 587135

DJ Electronic
Чтобы "вставить" в параметры reg.exe значения переменных я просто запускаю ее из CMD-файла ;)
Например, как здесь.

DJ Electronic 15-05-2007 15:37 587178

Ладно со всем этим мы разобрались но не выходит всё равно нужно получить параметр чтобы в реестре выглядел так:

"C:\Windows\прога\прога.exe" /F "%1" !!!не кавычкой больше или меньше!!!никак не выходит!!! сами попробуйте такое сочетание получить

vek 15-05-2007 15:53 587184

Может на INF попробовать примерно так:
Код:

[Version]
Signature=$Chicago$
[DefaultInstall]
AddReg          =  Settings.Reg
[Settings.Reg]
HKCU,"Software\MySoft","Params",,"""%25%\прога\прога.exe"" /F ""%1"""

Запуск INF из BAT примерно так:
Код:

SET wdir=%~dp0
SET wdir=%wdir:~0,-1%
rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %wdir%\Settings.inf


DJ Electronic 15-05-2007 16:23 587198

vek, респект, пасиб всё ок, работает, тока не %25% а %10% ;) похоже единственный способ в моём случае, кстати можно просто правой кнопкой по файлу - установить))) этого хватит в данном случае

zuckij 15-05-2007 16:43 587212

Код:

zuckij, не работает! вобще то реестр не понимает %SYSTEMROOT% .... даже если запуск программы прописывать в автозапуск !!!!
ну тогда я незнаю, у меня работат смотри пример импорт во время установки, и что сейчас в натуре, хотя думаю YuriPet сделал более грамотно.
Код:

Windows Registry Editor Version 5.00    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Cursors\Schemes]  "Windows Green"="\"%SystemRoot%\\Cursors\\Green arrow.cur,%SystemRoot%\\Cursors\\Green help.cur,%SystemRoot%\\Cursors\\Green wait.cur,%SystemRoot%\\Cursors\\Green busy.cur,%SystemRoot%\\Cursors\\Green cross.cur,%SystemRoot%\\Cursors\\Green beam.cur,%SystemRoot%\\Cursors\\Green pen.cur,%SystemRoot%\\Cursors\\Green no.cur,%SystemRoot%\\Cursors\\Green size4.cur,%SystemRoot%\\Cursors\\Green size3.cur,%SystemRoot%\\Cursors\\Green size2.cur,%SystemRoot%\\Cursors\\Green size1.cur,%SystemRoot%\\Cursors\\Green move.cur,%SystemRoot%\\Cursors\\Green up.cur,,\""

DJ Electronic 15-05-2007 17:08 587223

zuckij, там синтаксис очень сложный! путается командная строка при выполнении!!! Сам поэксперементируй просто сделай cmd файлик пропиши в него REG ADD ..... куда нибудь в начало ветки реестра к примеру HKCR и в ней сразу папочку _Test_ к примеру вот и попытайся получить таким путём нужный результат чтобы в реестрепри выполнении отображалось "C:\Windows\proga\proga.exe" /F "%1" увидишь что это невозможно из за того как команда сложная! происходит путаница с кавычками - " ещё к тому же русский не понимает приходится делать кодировку дос ещё один минус такого способа!!!

boss911 15-05-2007 18:44 587279

DJ Electronic

Цитата:

происходит путаница с кавычками
Цитата:

Чтобы обойти это препятствие используйте обратную косую черту (backslash) \" для каждых кавычек, которые вы добавляете.
Может, этот пример поможет!



Держи, все работает:
Код:

REG ADD "HKCR\*\shell\changeIcon\command" /ve /d "\"%SYSTEMROOT%\PROF\PROG.exe\" /F \"%%1\\"" /f
Цитата:

ещё к тому же русский не понимает приходится делать кодировку дос ещё один минус такого способа
Перестань, это долеко не аргумент и не проблема!

DJ Electronic 15-05-2007 19:48 587298

Да сделал уже, и так и так понял как! но пошёл первым путём! создал как обычно 2 файла один cmd второй reg, cmd запускает reg ключи экспортируюся в реестр далее 7zSFX тихий архив удаляет оба файла (дабы не сорить лишними файлами после того как они отработали) а теперь один cmd второй inf но принцип тот же, а конвертнуть из reg для inf не долго, быстрей чем для команды REG ADD....., всем спасибо тема закрыта, новеньким и начинающим вроде меня урок будет!

boss911 15-05-2007 21:52 587371

DJ Electronic
Цитата:

теперь один cmd второй inf
А 2 в 1 ни как не нравитса! :glare:

DJ Electronic 15-05-2007 23:20 587394

boss911, вопрос такой ты конвертора не видел reg2cmd или что нить в этом духе??? долго это очень в один всё делать! если заносить только те ключи "проблемные" а другие оствлять в reg опять 2 файла! ;)

boss911 16-05-2007 02:17 587433

DJ Electronic
Цитата:

ты конвертора не видел reg2cmd
Нет! Просто с батниками мне более куда понятно, чем работа с inf'ами!

Цитата:

"проблемные" а другие оствлять в reg опять 2 файла!
Я тебя понял, просто думал, что у тебя одиночный случай! :)

Master of Magic 17-05-2007 12:23 587930

Как в inf записать такой ключик?:
Код:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Cached]
"{871C5380-42A0-1069-A2EA-08002B30309D} {000214E6-0000-0000-C000-000000000046} 0x401"=hex:01,\
  00,00,00,74,6c,9c,7c,b6,fd,9f,79,f8,7f,c7,01

Спасибо.

vek 17-05-2007 12:52 587941

Код:

HKCU,"Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Cached","{871C5380-42A0-1069-A2EA-08002B30309D} {000214E6-0000-0000-C000-000000000046} 0x401",1,01,\
  00,00,00,74,6c,9c,7c,b6,fd,9f,79,f8,7f,c7,01

Вот так, приблизительно.
P.S. не проверял еще.

DJ Electronic 17-05-2007 14:24 587983

Master of Magic, Конвертнул утилитой reg2inf кстати скачай её пригодится ;)

Код:

hkcu,"Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Cached","{871C5380-42A0-1069-A2EA-08002B30309D} {000214E6-0000-0000-C000-000000000046} 0x401",1,01,\
  00,00,00,74,6c,9c,7c,b6,fd,9f,79,f8,7f,c7,01

либо как делает эта утилита:

Код:

hkcu,"%31_SMWCSC%","{871C5380-42A0-1069-A2EA-08002B30309D} {000214E6-0000-0000-C000-000000000046} 0x401",1,01,\
  00,00,00,74,6c,9c,7c,b6,fd,9f,79,f8,7f,c7,01

[Strings]
31_SMWCSC="Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Cached"



Время: 21:07.

Время: 21:07.
© OSzone.net 2001-