Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2015, 05:28   #1
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию ShellExecute для открытия приложения.

Подскажите пожалуйста, как можно исправить ситуацию:

Есть приложение hello.exe в папке Приложение. В этой же папке находится папка 1, в которой в свою очередь лежит приложение 1.exe с кучей файлов , с которыми оно должно работать.


Проблема в том, что если я пытаюсь открыть 1.ексе через hello.exe - оно открывается, но вылетает целая куча ошибок, связанная с тем, что в 1.exe прописано куча относительных путей. Но они загружаются теперь не относительно 1.exe, а относительно hello.exe, которая находится на уровень выше.

Например, вылетает ошибка, что картинка 1.джпг не найдена по адресу Приложение/1.jpg

Но если открывать 1.ексе напрямую, все открывается без проблем (путь не меняется)

Код:
ShellExecute(handle,nil,(pchar(ExtractFilePath (ParamStr(0))+adres)),nil,nil,sw_restore);
Как можно исправить? Спасите.
Пытался создать через Криэйт ПРоцес, но та же беда. Каким образом можно указать, что адрес должен браться относительно 1.exe?
Интересный проект по изучению английского:
Английский в формате путешествия по США

Последний раз редактировалось Dennis777; 29.01.2015 в 06:09.
Dennis777 вне форума Ответить с цитированием
Старый 29.01.2015, 07:15   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

function CreateProcess(lpApplicationName: PChar; lpCommandLine: PChar;
lpProcessAttributes, lpThreadAttributes: PSecurityAttributes;
bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer;
lpCurrentDirectory: PChar; const lpStartupInfo: TStartupInfo;
var lpProcessInformation: TProcessInformation): BOOL; stdcall;
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 29.01.2015, 07:18   #3
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Цитата:
Как можно исправить?
Скорее вопрос, теперь понятно, что относительные пути, это плохо?
WinCoder вне форума Ответить с цитированием
Старый 29.01.2015, 12:42   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Код:
HINSTANCE ShellExecute(

    HWND hwnd,	// handle to parent window
    LPCTSTR lpOperation,	// pointer to string that specifies operation to perform
    LPCTSTR lpFile,	// pointer to filename or folder name string
    LPCTSTR lpParameters,	// pointer to string that specifies executable-file parameters 
    LPCTSTR lpDirectory,	// pointer to string that specifies default directory
    INT nShowCmd 	// whether file is shown when opened
   );
я всё сказал.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 29.01.2015, 13:31   #5
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Ребята, большое спасибо, я дно)
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 29.01.2015, 14:40   #6
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Цитата:
Сообщение от WinCoder Посмотреть сообщение
Скорее вопрос, теперь понятно, что относительные пути, это плохо?
Как раз только наткнулся на статью Ганфаера об этом. Жаль, что слишком поздно)
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск приложения с помощью ShellExecute, ошибка. butamun Общие вопросы Delphi 1 29.04.2014 19:03
Перенос Edit в ShellExecute или переменые в ShellExecute VMG Общие вопросы Delphi 5 11.02.2014 15:12
ShellExecute для Chrome Kazik Помощь студентам 1 03.06.2013 12:24
Проблема открытия MS Word из приложения Haik> C# (си шарп) 1 05.04.2012 10:35
Программа для открытия дистрибутивов quf Софт 0 13.02.2009 19:05