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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] необходимо через реестр определить, где установлена программа, и запустить .exe файл (http://forum.oszone.net/showthread.php?t=177441)

Chargos 05-06-2010 14:41 1427849

необходимо через реестр определить, где установлена программа, и запустить .exe файл
 
Доброго времени суток. Подскажите пожалуйста, как написать батник... Суть в следующем: необходимо через реестр определить, где установлена программа, и запустить .exe файл из этого каталога. Заранее благодарен.

gora 05-06-2010 14:53 1427854

Цитата:

Цитата Chargos
необходимо через реестр определить, где установлена программа, и запустить .exe файл из этого каталога. »

Код:

@Echo Off
Set KeyProgram=HKLM\SOFTWARE\7-Zip
Set ExeProgram=7zFM.exe

For /F "tokens=2*" %%a In ('Reg Query "%KeyProgram%" /v Path') Do Start "" "%%b\%ExeProgram%"
pause>Nul


Chargos 05-06-2010 15:18 1427868

Почти получилось. Пишет
Цитата:

Не удаётся найти "\имя_файла.exe". Проверьте, правильно ли указано имя и повторите попытку.
но при нажатии на "ОК" запускает.

gora 05-06-2010 15:28 1427873

Цитата:

Цитата Chargos
Почти получилось. Пишет
Цитата:
Не удаётся найти "\имя_файла.exe". »

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

Chargos 05-06-2010 15:45 1427885

Код:

HKEY_CURRENT_USER\Software\4GAME\Lineage II
Код:

d:\_G\Lineage II\LineageII.exe

gora 05-06-2010 15:55 1427890

Цитата:

Цитата Chargos
Код:
HKEY_CURRENT_USER\Software\4GAME\Lineage II »

Это имя ветки, а где ее содержимое? Экспортируйте эту ветку и результат приведите здесь.

Chargos 05-06-2010 15:59 1427894

Код:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\4GAME\Lineage II]
"InstallerVersion"="1.0.9"
"Name"="LineageII.exe"
"Path"="D:\\_G\\Lineage II"
"version"=dword:00000002
"alreadyrun"="1"
"last_crc"="87dfb61533abf918159ea74683769147"
"UserName"=""
"SaveUserName"=""


gora 05-06-2010 16:08 1427900

Попробуйте:
Код:

@Echo Off
Set KeyProgram=HKCU\Software\4GAME\Lineage II
Set ExeProgram=LineageII.exe

For /F "skip=4 tokens=2*" %%a In ('Reg Query "%KeyProgram%" /v Path') Do Start "" "%%b\%ExeProgram%"
pause>Nul


Chargos 05-06-2010 16:11 1427903

Так и делал... Результат, соответственно, тот же.

El Sanchez 05-06-2010 16:38 1427915

Chargos,

Код:

@Echo Off
Set KeyProgram=HKCU\Software\4GAME\Lineage II
Set ExeProgram=LineageII.exe

For /F "skip=2 tokens=2*" %%a In ('Reg Query "%KeyProgram%" /v Path') Do Start "" "%%b\%ExeProgram%"
pause>Nul


Chargos 05-06-2010 16:49 1427921

Благодарю. И последний вопрос... Как прописать параметр к этому файлу?

El Sanchez 05-06-2010 19:20 1428045

Chargos,

Цитата:

Цитата Chargos
Как прописать параметр к этому файлу? »

Код:

... Start "" "%%b\%ExeProgram%" /parameter1 /parameter2 ... /parameterN
, в общем дописать параметры, разделяя пробелом


gora указал skip=4, что верно для WinXP, для Vista/Win7 - skip=2, т.к. reg.exe в разных версиях ОС выводит в консоль по-разному. Чтобы не путаться, ищем сразу нужную нам строку:

Код:

@Echo Off
Set KeyProgram=HKCU\Software\4GAME\Lineage II
Set ExeProgram=DJVUCTRL.exe

For /F "tokens=2*" %%a In ('Reg Query "%KeyProgram%" /v Path^|Find "REG_SZ"') Do Start "" "%%b\%ExeProgram%" /parameter1 ... /parameterN


Chargos 05-06-2010 21:59 1428171

Спасибо за помощь


Время: 20:35.

Время: 20:35.
© OSzone.net 2001-