Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-75460
Дремучий
2003-10-24 12:52
2003.12.23
Как поставить глобальный хук на смену языка ввода под NT?


8-75271
Алексей Стадник
2003-08-25 06:57
2003.12.23
Создание IDirectInput


3-75106
Vemer
2003-11-28 18:19
2003.12.23
Подключение к IBase по сети.


1-75241
h0use
2003-12-10 16:49
2003.12.23
Непонятная ошибка при создании формы


14-75363
Igor_thief
2003-11-29 14:32
2003.12.23
Иконки из длл





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский