Чтение из реестра пути и запуск файла.
|
|
serega393 | Дата: Среда, 02 Мая 2007, 23:20 | Сообщение # 1 |
Новый участник
Группа: Пользователи
Сообщений: 1
Репутация: 0
Награды: 0
Статус: Offline
| При создании авторана для игры столкнулся с проблемой запуска и удаления игры через меню. Как при нажатии кнопки запускать файл путь к которому берётся из реестра или ini файла.
|
|
| |
toizy | Дата: Четверг, 03 Мая 2007, 14:54 | Сообщение # 2 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Run("s$","")?
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
FreeStyler | Дата: Вторник, 16 Февраля 2010, 07:13 | Сообщение # 3 |
Новый участник
Группа: Пользователи
Сообщений: 4
Репутация: 0
Награды: 0
Статус: Offline
| Ну вот у меня в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\City Life Edition 2008_is1\Inno Setup: App Path значение E:\Games\City Life Edition 2008 Задача: нужно взять этот путь и запустить файл CLD.exe, который находится в E:\Games\City Life Edition 2008\bin\CLD.exe Написал: LoadVariable("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\City Life Edition 2008_is1\Inno Setup: App Path","path$") path$=path$+'\bin\CLD.exe' Run("path$\bin\CLD.exe","") Не пашет! Т.е. пишет не может найти файл \bin\CLD.exe, т.е. вообще почему-то не берёт инфу из реестра! Подскажите где ошибка?
|
|
| |
DEMBEL | Дата: Вторник, 16 Февраля 2010, 07:26 | Сообщение # 4 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| LoadVariable не поможет, оно читает не по всему реестру, а только в пределах определенной ветки. Используется в основном для чтения параметров, установленных с помощью SaveVariable. Но прочитать все равно можно, правда через заднее место, смотри тут. Добавлено (16 Февраль 2010, 07:26) --------------------------------------------- можно прочитать и не используя внедренный vbs-скрипт, а консольную команду REG, так проще будет, разберись только с ее синтаксисом.
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
FreeStyler | Дата: Вторник, 16 Февраля 2010, 08:59 | Сообщение # 5 |
Новый участник
Группа: Пользователи
Сообщений: 4
Репутация: 0
Награды: 0
Статус: Offline
| Да я вот авторун видел сделанный с помощью MMB и там было так: если игра установлена, то становится доступной кнопка играть, вот как они реализовали такое - не пойму! К тому же если Quote LoadVariable не поможет, оно читает не по всему реестру, как тогда они это реализовали. В http://mmbuilder.ru/load/30-1-0-532 этом примере заносится в файл значение а потом берётся в бокс, а как внести в переменную и потом её вставить в путь Run'a? Добавлено (16 Февраль 2010, 08:59) --------------------------------------------- Пробовал как-то так, не тянет Code ** формируем командную строку для запуска внедренного vbs-скрипта ** скрипт положит значение переменной во временный файл string$='"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\City Life Edition 2008_is1\Inno Setup: App Path"' run$='WAIT '+string$ Run("<Embedded>\regread2.vbs","run$") Hide("Text4") Show("PG2") ** читаем значение ключа из временного файла и загружаем его ** в обьект параграф - PG2 LoadText("PG2","<Temp>\RegTmp.tmp") ListBoxAddItem("str$","<Temp>\RegTmp.tmp") Run("str$","") ** удаляем временный файл del$='WAIT,HIDE /c del '+<Temp>+'\RegTmp.tmp'+' /f /Q' Run("cmd","del$") Блин такая простая до ужасти задача, а не могу найти программу которая её выполнит! Пытался в Autoplay Media Studio - тоже не хочет путь этот извлекать! Может кто знает программку, которая может?
Сообщение отредактировал FreeStyler - Вторник, 16 Февраля 2010, 09:10 |
|
| |
Alex3A | Дата: Вторник, 16 Февраля 2010, 14:03 | Сообщение # 6 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| FreeStyler, LoadVariable работает только с выделенной в ммб веткой реестра, и предназначено для хранения переменных. Тебе ни кто не мешает сделать файл реестра *.reg и запустить его из ммв, командой Run. Его то же можно собрать в скрипте ммв. Путь к твоей проге при ее запуске описывается макросом <SrcDir>. Что то записать в реестре, другим способом, можно и с помощью vbs скрипта, а так же иных методов. Так что больших проблем в этом нет, главное что бы написал все правильно, согласно синтаксису.
|
|
| |
YURIY | Дата: Вторник, 16 Февраля 2010, 15:35 | Сообщение # 7 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (FreeStyler) Может кто знает программку, которая может? Ничего не понимаю. Тебе уже дали готовый проект: Quote (DEMBEL) Но прочитать все равно можно, правда через заднее место, смотри тут Неужели сложно скачать и посмотреть? С ним задача решается за 1 минуту!
Вечная память Андрею Сергееву!
|
|
| |
FreeStyler | Дата: Вторник, 16 Февраля 2010, 17:59 | Сообщение # 8 |
Новый участник
Группа: Пользователи
Сообщений: 4
Репутация: 0
Награды: 0
Статус: Offline
| Alex3A, Вы явно что-то не поняли YURIY, скачал, посмотрел, написал Quote (YURIY) Пробовал как-то так, не тянет Добавлено (16 Февраль 2010, 17:59) --------------------------------------------- Если знаете как - напишите, пожалуйста!
|
|
| |
Alex3A | Дата: Вторник, 16 Февраля 2010, 21:07 | Сообщение # 9 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Что бы считать значение из регистра, в примере YURIY, запускется скрипт vbs regread2.vbs который считывает значение и сохраняет его в файл, который потом считывает твоя прога. Quote (FreeStyler) Пробовал как-то так, не тянет Это ты просто не тянеш, посему, тебе надо узнать что такое внедренные файлы и как поиметь файл со скриптом regread2.vbs.
|
|
| |
FreeStyler | Дата: Среда, 17 Февраля 2010, 00:28 | Сообщение # 10 |
Новый участник
Группа: Пользователи
Сообщений: 4
Репутация: 0
Награды: 0
Статус: Offline
| Alex3A, если бы тянул я бы здесь не просил о помощи Задача простая - прочитать путь из ветки и запустить через Run! Не справляется программа с этой задачей, Бог с ней! Я не программист, чтобы писать мега скрипты regread2.vbs, был бы уже б сам написал на каком нибудь делфи свой авторун и не парился! Спасибо за помощь! Для обычных пользователей вопрос так и остаётся открытым
Сообщение отредактировал FreeStyler - Среда, 17 Февраля 2010, 00:55 |
|
| |
YURIY | Дата: Среда, 17 Февраля 2010, 01:59 | Сообщение # 11 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (FreeStyler) Не справляется программа с этой задачей, Бог с ней! В программе функции такой нет, уже ведь писали! Quote (FreeStyler) YURIY, скачал, посмотрел, написал Пардон, пропустил. Тогда советую использовать этот плагин: http://smallplugin.com/ru/ У меня с ним всё получилось. Добавлено (17 Февраль 2010, 01:09) ---------------------------------------------
Quote (Alex3A) Это ты просто не тянеш, посему, тебе надо узнать что такое внедренные файлы и как поиметь файл со скриптом regread2.vbs. Не нужно совсем. В VBS передаются нужные данные, его сценарий править не требуется. P. S. Проект, кстати, не мой Добавлено (17 Февраль 2010, 01:59) ---------------------------------------------
Quote (DEMBEL) а консольную команду REG Quote (ICQ - dgilmour) reg это не команда, а утилита, и что еще важнее, впервые она была включена в ХР, так что в 2000 не прокатит.
Вечная память Андрею Сергееву!
|
|
| |
Alex3A | Дата: Среда, 17 Февраля 2010, 03:18 | Сообщение # 12 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Quote (YURIY) Не нужно совсем. У него в проекте он явно не вложен, переписать скрипт это одно, а вытянуть из другого проекта нужный файл, и вложить в свой другое. Quote (FreeStyler) Бог с ней! Я не программист, чтобы писать мега скрипты regread2.vb Тебе надо вытянуть из примера этот файл (regread2.vbs) и вложить в свой проект. Запустив пример, найди его в темпе скопируй, и вложи в свой проект. Без его наличия в твоем проекте скрипт работать не будет.
|
|
| |
YURIY | Дата: Среда, 17 Февраля 2010, 05:05 | Сообщение # 13 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (Alex3A) У него в проекте он явно не вложен Я просто понадеялся, что все операции производились в оригинальном проекте. Quote (Alex3A) Тебе надо вытянуть из примера этот файл (regread2.vbs) и вложить в свой проект. тра-та-та Ради Бога, харе! Выше ссылка на плагин.
Вечная память Андрею Сергееву!
|
|
| |
Alex3A | Дата: Среда, 17 Февраля 2010, 13:32 | Сообщение # 14 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Quote (YURIY) Ради Бога, харе! Выше ссылка на плагин. Плагин хорош только тогда когда знаеш как с ним боротся. Quote (FreeStyler) Для обычных пользователей вопрос так и остаётся открытым Вопрос остается открытым только для пользователей не желающих изучать предмет своей нужды. ммв расчитана и на таких, однако пределы ее возможностей ограничены, и для получения чего то, что она не делает, необходимо получить дополнительные знания. В приведенном тобою фрагменте кода, имеются коментарии, которые отвечают на твои вопросы, расказывая как работает этот скрипт. ** формируем командную строку для запуска внедренного vbs-скрипта говорит о том что в твоем проекте должен быть внедрен файл regread2.vbs, который тебе надо туда просто тупо вложить, не вникая в его содержимое, и указать путь в реестре к нужному параметру. Я думаю, что ты в состоянии сообразить, что если не будет вложенного файла скрипта, или ты укажеш не существующий, в твоем реестре путь, то и параметра никакого ты не получиш. Для того что бы корректно написать путь к параметру, найди в редакторе реестра нужную запись и экспортируй ее в файл, затем открой его в блокноте и скопируй путь, это тебя обезопасит от ошибок при вводе пути с клавы. Буквы А и A выглядят одинаково, и ты будеш долго упиратся пока не поймеш что они разные.
|
|
| |