Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Запуск двух *.exe из разных папок с установленной программой

Ответить
Настройки темы
Delphi - [решено] Запуск двух *.exe из разных папок с установленной программой

Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Подскажите пожалуйста...
В папке с устанавливаемой программой есть еще две папки в обеих лежат по одному *.exe файлу.
Как вызвать из главного окна формы тот или иной *.exe файл понятно, к примеру так:
Код: Выделить весь код
//Запускаем исполняемый файл из Папки 1
ShellExecute(handle,'open','C:\Program Files\Папка с установленной программой\Папка1\Start1.exe',nil,nil,SW_SHOW); 
//Запускаем исполняемый файл из Папки 2
ShellExecute(handle,'open','C:\Program Files\Папка с установленной программой\Папка2\Start2.exe',nil,nil,SW_SHOW);
Мы жестко прописываем путь к тому или иному *.exe файлу . А если человек установит программу в другую папку, диск. Как быть в этом случае?
По ходу, объединять в одну папку эти *.exe файлы не нужно.

Отправлено: 21:26, 13-02-2010

 

Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Fus-Sheva, тут все зависит от того, каким образом нужно указать путь к exe - если можно указать вручную, то, например, можно создать ini файл с путями к exe, вручную его править, и грузить путь уже с ini. А можно просто по время исполнения программы запросит ввод путей к exe. Но если нужно найти требуемые exe автоматически, где бы они не находились, то тут мороки уже намного больше. Опишите более подробно задачу и требуемые результаты.

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 21:46, 13-02-2010 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


К примеру, человек устанавливает программу "PROGA". Инсталятор ложит ее по умолчанию в папку с таким путем:
C:\Program Files\PROGA

Но человеку хочется установить эту программу в папку с таким путем D:\Games\PROGA (инсталятор позволяет изменить папку назначения). А вот в папке "PROGA" есть еще две папки, скажем Part1 и Part2

При запуске программы из папки "PROGA" Start.exe открывается форма на которой установлено две кнопки Part1 и Part1 при нажатии на одну из них должен запускаться исполняемый файл либо из папки Part1 (Start1.exe) либо из папки Part2 (Start2.exe)

Так понятней?

Отправлено: 22:08, 13-02-2010 | #3


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Fus-Sheva можно определить папку приложения с помощью функции GetModuleFileName(). А к полученному пути поочередно прибавить (например с помощью функций работы со строками) требуемые относительные, Папка1\Start1.exe и Папка2\Start2.exe.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:11, 13-02-2010 | #4


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Спасибо попробуем.

Отправлено: 22:13, 13-02-2010 | #5


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Сделал следующим образом.
Пример:
Путь к папке с установленной программой: C:\Program Files\PROGA
Пути к файлам *.exe
C:\Program Files\PROGA\Start.exe
C:\Program Files\PROGA\Part1\Start1.exe
C:\Program Files\PROGA\Part2\Start2.exe

Потом примерно так:
Код: Выделить весь код
 //объявляем строковые переменные
 Var Path: String;   
 Var Part1: String;  
 Var Part2: String; 
 
//Действие по "Кнопка-1"
 procedure TForm1.Button1Click(Sender: TObject);  
begin
 Path:=Application.ExeName; // получаем путь к Start.exe
 Path:=ExtractFileDir(Path);  // обрезаем название и расширение (Start.exe) 
 Part1:='\Part1\Start1.exe'; // присваиваем (прописываем) путь к Start1.exe в первой папке Part1
ShellExecute(handle,'open', PChar(Path + Part1), nil,nil,SW_SHOW);  //  к обрезанному пути Path дописываем путь к первой папке (Part1) и файлу Strat1.exe
end;

// Тоже самое делаем с "Кнопка-2" 
 procedure TForm1.Button2Click(Sender: TObject); 
begin
 Path:=Application.ExeName; 
 Path:=ExtractFileDir(Path);  
 Part2:='\Part2\Start2.exe';
ShellExecute(handle,'open', PChar(Path + Part2), nil,nil,SW_SHOW);
end;

Отправлено: 21:54, 15-02-2010 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Запуск двух *.exe из разных папок с установленной программой

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Router - Интернет с двух разных WIFI точек Joni Сетевое оборудование 3 15-01-2010 09:43
C/C++ - запуск одной программой другую zl3p Программирование и базы данных 4 24-02-2009 15:42
Доступ к файлам двух разных локальных сетей Mans2k Microsoft Windows NT/2000/2003 1 20-08-2008 08:21
запуск разных программ для разных пользователей при загрузке schumi Microsoft Windows 2000/XP 2 06-01-2006 22:36




 
Переход