Главная страница
    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.008 c
7-75412
miek
2003-10-17 19:13
2003.12.23
секрет DOS


1-75207
Sanych_k
2003-12-11 10:36
2003.12.23
Как оброботать клик правой кнопкой над динамической кнокой?


1-75190
GreySerg
2003-12-09 15:16
2003.12.23
Как в Clipboard вставить не только сам текст , но и его форматиро


14-75350
cyborg
2003-11-29 13:15
2003.12.23
Дурацкие выражения


14-75387
ИдиотЪ
2003-11-28 14:58
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский