ShellExecute
Что делать?
Уважаемые как запустить exe файл? Я использую функцию ShellExecute(Form1->Handle,"","C:\\....\\....exe","","",1), но вот в чём проблема, если переместить этот файл, то он не запускается.
А почему он должен запускаться? Ты же путь в программе не меняешь ;)
А почему он должен запускаться? Ты же путь в программе не меняешь ;)
Мне нужна запустить exe файл но где он будет находится на другом компе я не знаю.
Как это сделать?
ShellExecute не подходит, так как он запускает файл только из определённого места.
Мне нужна запустить exe файл но где он будет находится на другом компе я не знаю.
Что имеется в виду? Если не задан путь к файлу, ShellExecute пытается запусить программу, найдя ее через переменную среды PATH.
Кстати, почему нельзя предусмотреть настройку программы, в которой будет храниться путь к нужному файлу? И хранить данную настройку, скажем, в реестре...
Что имеется в виду? Если не задан путь к файлу, ShellExecute пытается запусить программу, найдя ее через переменную среды PATH.
Кстати, почему нельзя предусмотреть настройку программы, в которой будет храниться путь к нужному файлу? И хранить данную настройку, скажем, в реестре...
А как это сделать? Можно небольшой пример.
А как это сделать? Можно небольшой пример.
Этот примерчик открывает ini-файл в _рабочей_ папке программы и читает из него параметр Temporary, типа где временные файлы размещать (напоминаю: рабочая папка программы не всегда совпадает с папкой, в которой эта прога находится).
{
TIniFile *ini;
AnsiString IniFileName;
AnsiString s("C:\\TEMP");
IniFileName = GetCurrentDir();
if(IniFileName[IniFileName.Length()] != '\\')
IniFileName += '\\';
TempLocation = (ini = new TIniFile(IniFileName += ChangeFileExt(ExtractFileName(Application->ExeName),".INI")))->ReadString( "Database", "Temporary", s);
}
try-catch расставить по вкусу.
После работы кусочка этого кода в IniFileName содержится полный путь к ini-файлу (вдруг ещё раз понадобится?)
Записывать соответственно функциями WriteString, WriteInteger...
ЗЫ. Вышеприведённый код не тестировал, но, по идее, должно работать.
Интересно, почему все двойные бэкслэши при постинге были заменены на одинарные?..
И, конечно, надо написать: