Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.26;
Скачать: CL | DM;

Вниз

Теряется путь от исполняемой папки   Найти похожие ветки 

 
AIK ©   (2009-03-15 15:50) [0]

Привет всем.
Может кто сталкивался хотя бы с подобной проблемой, мне нужно просто выгрузить всё из архива (с помощью WinRAR) в папку Temp делаю следуюшее:

procedure TForm1.Button1Click(Sender: TObject);
Var
parm, s: String;
begin
parm:="x  123.zip  Temp\";
ShellExecute(1, nil, "WinRAR", PansiChar(parm), nil, SW_NORMAL);
end;


Всё прекрасно работает но у меня на форме есть OpenDialog после того как воспользуюсь им путь к исходной папке теряется и выше упомянутый код не работает, сделал следуюшее:

S:= ExtractFilePath(Application.ExeName)+"Temp\";
parm:="x  "+ ExtractFilePath(Application.ExeName)+"123.zip  "+ S;

ShellExecute(1, nil, "WinRAR", PansiChar(parm), nil, SW_NORMAL);


Но это по каким-то странным обстоятельством даже немного в глубоком дереве папок WinRar не видит файл только в первых каталогах диска (Например: C:\123.zip). Как мне быть с этой ситуацией?


 
AIK ©   (2009-03-15 15:53) [1]


> ShellExecute(1, nil, "WinRAR", PansiChar(parm), nil, SW_NORMAL);


ShellExecute(Handle, nil, "WinRAR", PansiChar(parm), nil, SW_NORMAL);
Эт я вспешке    :)


 
Плохиш ©   (2009-03-15 20:19) [2]

Используй в программе полные пути.


 
AIK ©   (2009-03-16 07:41) [3]


> Используй в программе полные пути.


S:= ExtractFilePath(Application.ExeName)+"Temp\";
parm:="x  "+ ExtractFilePath(Application.ExeName)+"123.zip  "+ S;


Так ведь объяснил же что WinRar не распознает длинные передаваемые параметры и поэтаму не всегда работает


 
И. Павел   (2009-03-16 08:04) [4]

Заключите имя параметра в кавычки (если путь содержит пробелы, они будут восприниматься как разделители параметров)


 
И. Павел   (2009-03-16 08:06) [5]

ShellExecute(1, nil, "WinRAR", PansiChar("""+parm+"""), nil, SW_NORMAL);


 
AIK ©   (2009-03-16 08:40) [6]


> (если путь содержит пробелы, они будут восприниматься как
> разделители параметров)


Ах да я даже неподумал обэтом, спасибо Павел
Так выглядит рабочий вариант:

S:= """+ExtractFilePath(Application.ExeName)+"Temp\"";
parm:="x  ""+ ExtractFilePath(Application.ExeName)+"123.zip"  "+ S;
ShellExecute(Handle, nil, "WinRAR", PansiChar(parm), nil, SW_NORMAL);



Страницы: 1 вся ветка

Текущий архив: 2009.04.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
2-1236740240
Серёга
2009-03-11 05:57
2009.04.26
Цвет колонки в ListView


2-1236634530
Дмитрий Белькевич
2009-03-10 00:35
2009.04.26
Как правильнее закрывать приложение? App.Terminate или Close


15-1235487223
БарЛог
2009-02-24 17:53
2009.04.26
Любителям шахмат =)


8-1189701931
Александр Иванов
2007-09-13 20:45
2009.04.26
Ускоренное воспроизведение видео средствами DirectShow


6-1199630362
WebSQLNeederr
2008-01-06 17:39
2009.04.26
отключить в ТВебБроузер звук щелчка при переходе по линку