узнать директорию, в которой находится запущенная про

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

узнать директорию, в которой находится запущенная про

Сообщение PADOCTb » 17.12.2008 22:37:18

Доброго времени суток!

Есть такая задачка - по нажатию кнопки на форме открыть в браузере страничку, которая прячется в одном каталоге с работающей программой. Для этого я решил воспользоваться таким кодом:
Код: Выделить всё
TheProcess:=TProcessUTF8.Create(nil);
  try
    TheProcess.Options:= [poUsePipes, poNoConsole, poStdErrToOutput];
    TheProcess.ShowWindow := swoNone;
    TheProcess.CommandLine:='explorer путь_к_файлу';
    try
      TheProcess.Execute;
      TheProcess.WaitOnExit;
    finally
      TheProcess.Free;
    end;
  except
    on E: Exception do begin
      DebugLn('TForm1.OpenURL ERROR: ',E.Message);
    end;
  end;

так вот не могу найти способ определения пути к файлу. пробовал
Код: Выделить всё
Path := ExtractFileDir(Application.ExeName);
и
Код: Выделить всё
Path := ExtractFileDir(paramStr(0));

но обе эти функции возвращают мне пустую переменную.
Аватара пользователя
PADOCTb
новенький
 
Сообщения: 10
Зарегистрирован: 23.10.2008 11:36:05
Откуда: Краснодар

Re: узнать директорию, в которой находится запущенная п

Сообщение Mr.Smart » 17.12.2008 23:39:34

Дело в том, что функция ParamStr возвращает строку в кодировке ANSI, а так как у тебя скорее всего используется UTF8 необходимо либо преобразовать строку в UTF-8 (SysToUTF8 либо AnsiToUTF8) или воспользоваться функцией из модуля LCLProc ParamStrUTF8.
Для получения пути необходимо использолвать функцию ExtractFilePath она вернёт путь со слешем в конце, а ExtractFielDir возвращает сам каталог т.е. путь но без слеша в конце.
Код: Выделить всё
...
  s:=ExtractFilePath(ParamStrUTF8(0));
...
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 34

Рейтинг@Mail.ru