|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Прошу помочь по запуску exe
Помогите с запуском exe-шника. Материалы для новичков читал. Как запустить проблем не возникает.
Но у меня есть особенность. Моя программка будет запускать игру. Предназначена для нескольких пользователей, у которых игра может находится в разных местах, т.е. пути будут различны, поэтому вбивать путь к ехе-шнику в код было бы неправильно. Мне не хватает мозгов чтобы реализовать следующее. При первом запуске создаётся некий config.txt в который с помощью Opendialog указывается путь к ехе-шнику игры, но при следующих запусках нужно просто проверять сущесвует ли config.txt, потом считать из него путь к ехе-шнику и в конце концов его запустить. Как реализовать всё по отдельно вроде понятно, но собрать всё воедино не могу... Заранее спасибо. |
#2
|
||||
|
||||
А не проще передавать нужный путь как параметр вашего исполняемого файла?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
||||
|
||||
А более подробно можно? не совсем понятно что такое параметр исполняемого файла.
В идеале путь к файлу хотелось бы брать из реестра куда игра прописывает свой путь при установке. в моём случае это Код:
HKEY_CURRENT_USER\Software\Eagle Dynamics\LockOn Flaming Cliffs 2\Path как мне кажется лучше указать путь при первом запуске моей программки. |
#4
|
||||
|
||||
Не люблю программ которые захламляют реестр ненужным мустором. Я предлагаю сделать проще, передавать параметр при запуске. Например:
YouApp.exe c:\SuperPuperGame\ Этот параметр можно в ярлык прописать. А в программе обрабатывается так: Код:
GamePath := ParamStr(1) Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
||||
|
||||
Про реестр я имел ввиду, что лучше только считать путь и по нему запускать игру по нажатию на Button. Записывать что-то в реестр ничего не надо.
Может я не очень подробно описал задачу. 1. по нажатию на Button открывается Opendialog. Пользователь указывает путь к ехе-шнику игры. Это я могу сделать. Проблема далее. 2. Полученный путь нужно записать в файл в конфиг.txt. 3. При следующих запусках моей программки, по нажатию на Button обратиться к конфиг.txt, взять из него путь и запустить ехе-шник, ну к примеру так. Цитата:
Вот как-то так. |
#6
|
|||
|
|||
Код:
uses Registry; const cKeyName = 'Software\Eagle Dynamics\LockOn Flaming Cliffs 2\'; function GetGamePath : String; var R : TRegistry; begin Result := ''; R := TRegistry.Create; Try If R.OpenKeyReadOnly(cKeyName) Then Begin If R.ValueExists('Path') Then Result := R.ReadString('Path'); R.CloseKey; End; Finally R.Free; End; If Result = '' Then Raise Exception.Create('Key not found.'); end; Если ключа нет, то получишь ошибку. |
#7
|
|||
|
|||
Код:
const FileName='config.txt'; var GameFile:string; implementation {$R *.dfm} procedure TForm1.ButtonClick(Sender: TObject); var OpenDialog:TOpenDialog; ExeFile:TextFile; begin assignFile (ExeFile,FileName); if FileExists (FileName) then begin reset (Exefile); ReadLn (Exefile,GameFile); closeFile (ExeFile); end else begin OpenDialog:=TOpenDialog.Create(Self); OpenDialog.Filter:='Only exe|*.exe'; OpenDialog.Title:='Выберите екзешник с игрой'; If openDialog.Execute then begin rewrite (Exefile); GameFile:=OpenDialog.FileName; WriteLn (Exefile,GameFile); closeFile (ExeFile); end; OpenDialog.free; end; end; Лови после выполнения кода, имя к екзешнику будет храниться в переменной gamefile. Нужна будет помощь обращайся icq 491385275. Последний раз редактировалось Admin, 14.09.2010 в 21:52. |