Форум: "Основная";
Текущий архив: 2003.12.23;
Скачать: [xml.tar.bz2];
ВнизКак указать в ShellExecute путь к системному катклогу? Найти похожие ветки
← →
Developerr (2003-12-08 15:51) [0]Уважаемые мастера, подскажите, пожалуйста, такую вещь:
Сохраняю файл из F1Book в каталог Винды \Temp\Report.xls
var Windir : String;
WindirP : PChar;
Res:byte;
begin
WinDirP := StrAlloc(MAX_PATH);
Res := GetWindowsDirectory(WinDirP, MAX_PATH);
WinDir := StrPas(WinDirP);
F1Book1.Write(WinDir+"\Temp\Report.xls", F1FileExcel97);
ShellExecute(Handle,nil,WinDir+"\Temp\Report.xls",nil,nil,SW_RESTORE);
Все хорошо, только вот не пойму как запустить потом этот файл.
Этот код не подходит, ошибка выскакивает.
ShellExecute(Handle,nil,WinDir+"\Temp\Report.xls",nil,nil,SW_RESTORE);
Поностью прописывать путь не всегда срабатывает, т.к. каталог Винды может по разному называться (Windows, Winnt) и вообще быть на разных дисках, в случае, когда установлено 2 ОС.
Как указать в ShellExecute путь к системному какталогу?
Или как по другому запустить файл?
Спасибо.
← →
Anatoly Podgoretsky (2003-12-08 16:13) [1]Предпоследний параметр
← →
Александр из Минска (2003-12-08 16:19) [2]Проще возьми (программно) полный адрес системной папки Темп.
← →
Stas (2003-12-08 16:52) [3]uses Registry;
var R:TRegistry;Dir:String;
begin
R:=TRegistry.Create; {создаем экземпляр объекта}
R.RootKey:=HKEY_LOCAL_MACHINE;
Dir:=R.Readstring("SystemRoot");
...
← →
Developerr (2003-12-08 16:55) [4]
> Anatoly Podgoretsky
Что предпоследний параметр?
> Александр из Минска ©
Каким образом?
To All
Если можно напишите пример.
← →
Anatoly Podgoretsky (2003-12-08 17:07) [5]"Как указать в ShellExecute путь к системному какталогу?"
Его указать в предпоследнем параметре, а получить с помощью GetSystemDirectory
← →
Developerr (2003-12-08 17:09) [6]
> Stas ©
И что? Все по прежнему, не извлекается.
> uses Registry;
> var R:TRegistry;Dir:String;
> begin
> R:=TRegistry.Create; {создаем экземпляр объекта}
> R.RootKey:=HKEY_LOCAL_MACHINE;
> Dir:=R.Readstring("SystemRoot");
Ни так:
ShellExecute(Handle,nil,"\Temp\Report.xls",nil,nil,SW_RESTORE);
Ни так:
ShellExecute(Handle,nil,Dir+"\Temp\Report.xls",nil,nil,SW_RESTORE);
← →
Developerr (2003-12-08 17:12) [7]
> Anatoly Podgoretsky ©
А пример, можно? Спасибо.
← →
Developerr (2003-12-08 18:00) [8]
> Anatoly Podgoretsky ©
ShellExecute(Handle,nil,"Report.xls",nil,GetSystemDirectory(WinDirP, MAX_PATH),SW_RESTORE);
Так не прокатывает. Пишет Incompatible types: "Cardinal" and "PAnsiChar".
← →
Александр из Минска (2003-12-08 23:47) [9]Вот так берется Темп: (только я сам не проверял)
http://delphimaster.net/view/7-1066891822/
← →
Developerr (2003-12-09 10:19) [10]Да, путь берется все работает. Отдельно и путь к папке винды можно найти. А вот как указать в ShellExecute, чтобы файл запускался именно из папки Temp?
← →
Александр из Минска (2003-12-10 16:00) [11]
> Developerr
То есть нужно просто запустить файлик, находящийся в папке Темп??? Так подойдет?
ShellExecute(Handle, "open", PChar(Путь_к_Темп_без_слэша+"\Report.xls"), nil, nil, SW_SHOW);
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c