PDA

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


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

gora
05-06-2010, 14:53
необходимо через реестр определить, где установлена программа, и запустить .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
Почти получилось. Пишет
Не удаётся найти "\имя_файла.exe". Проверьте, правильно ли указано имя и повторите попытку.
но при нажатии на "ОК" запускает.

gora
05-06-2010, 15:28
Почти получилось. Пишет
Цитата:
Не удаётся найти "\имя_файла.exe". »
Приведите здесь в тегах code:
- ветку реестра программы
- реальный путь к запускаемому файлу в системе

Chargos
05-06-2010, 15:45
HKEY_CURRENT_USER\Software\4GAME\Lineage II
d:\_G\Lineage II\LineageII.exe

gora
05-06-2010, 15:55
Код:
HKEY_CURRENT_USER\Software\4GAME\Lineage II »
Это имя ветки, а где ее содержимое? Экспортируйте эту ветку и результат приведите здесь.

Chargos
05-06-2010, 15:59
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
Попробуйте:@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
Так и делал... Результат, соответственно, тот же.

El Sanchez
05-06-2010, 16:38
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
Благодарю. И последний вопрос... Как прописать параметр к этому файлу?

El Sanchez
05-06-2010, 19:20
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
Спасибо за помощь




© OSzone.net 2001-2012