Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск приложения, имея информацию о каталоге в реестре 
:(
    Опции темы
Cron
  Дата 25.5.2007, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Простите если на форуме это уже обсуждали.

Я совсем недавно начал изучать Delphi, поэтому мой вопрос может показаться глупым. Через программу (нажатием кнопки) требуется запустить exe файл игры, но перед этим считать адрес каталога в который была установлена игра из ключа в реестре (расчитываю что программа будет использоваться разными людьми, следовательно и пути к игре разные). Обьясните пожалуйста как это можно осуществить? smile 
PM MAIL   Вверх
Exai1e
Дата 25.5.2007, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 2
Всего: 30



Код

ShellExecute(Handle,nil,'notepad.exe',nil,nil,SW_SHOWNORMAL);


Последний параметр управляет видимостью и активностью запущенной программы на экране.
Через ShellExecute() также можно запускать ассоциированную с тем или иным файлом программу:

Код

ShellExecute(Handle,'open','pd.doc',nil,nil,SW_SHOWNORMAL);


- запустит MS Word (или другую программу, ассоциироанную для запуска *.doc файлов) и загрузит в него файл pd.doc.

Код

WinExec('notepad.exe',SW_SHOWNORMAL);



WinExec() легче в использовании, однако давно уже устарела и не рекомендуется к использованию, оставлена только в целях совместимости с 16-ти разрядными приложениями.


взято из faq

Добавлено через 2 минуты и 53 секунды
насчет реестра - глянь на форуме, скорей всего должен быть гденить ответ smile
или глянь drkb (вроде так...) или faq


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
Cron
Дата 25.5.2007, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Дело в том что кода и описания работы с реестром много а нужного нет, тоесть я не понимаю как приспособить его к своей программе.

Это сообщение отредактировал(а) Cron - 25.5.2007, 14:23
PM MAIL   Вверх
Snowy
Дата 25.5.2007, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Попробуй поиск по слову TRegistry  smile 
PM MAIL   Вверх
Guedda
Дата 25.5.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Код

uses
  ..., Registry,...


procedure Zapusk;
var
  Reg : TRegistry;
  Str : string;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_LOCAL_MACHINE; //Здесь выбираешь ветку реестра
  Reg.OpenKey('MyGame\ThisDirOfMyGame', false); //Здесь открываешь путь по дереву к значению
  Str := Reg.ReadString('MyDirGame'); //Здесь считываешь значение переменной
  Reg.CloseKey; // Закрываешь реестр
  Reg.Free;
  ShellExecute(Handle,nil,Str,nil,nil,SW_SHOWNORMAL); //Запускаешь игру
end;



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Cron
Дата 25.5.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Цитата(Guedda @ 25.5.2007,  14:28)
Код

uses
  ..., Registry,...


procedure Zapusk;
var
  Reg : TRegistry;
  Str : string;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_LOCAL_MACHINE; //Здесь выбираешь ветку реестра
  Reg.OpenKey('MyGame\ThisDirOfMyGame', false); //Здесь открываешь путь по дереву к значению
  Str := Reg.ReadString('MyDirGame'); //Здесь считываешь значение переменной
  Reg.CloseKey; // Закрываешь реестр
  Reg.Free;
  ShellExecute(Handle,nil,Str,nil,nil,SW_SHOWNORMAL); //Запускаешь игру
end;

Ругаетсяи и не запускает программу
Код

  [Error] Unit1.pas(83): Incompatible types: 'String' and 'PAnsiChar'
  [Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas'

PM MAIL   Вверх
Guedda
Дата 25.5.2007, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Фуф... Ну напиши вместо:
Код

ShellExecute(Handle,nil,Str,nil,nil,SW_SHOWNORMAL); //Запускаешь игру

вот это:
Код

ShellExecute(Handle,nil,PChar(Str),nil,nil,SW_SHOWNORMAL); //Запускаешь игру



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Cron
Дата 25.5.2007, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Guedda Спасибо огромное!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.