Главная страница
    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-75407
cezar
2003-10-05 11:37
2003.12.23
Зимнее/летнее время


4-75452
Dimonn
2003-10-28 11:19
2003.12.23
VirtualAlloc


14-75348
Hermit
2003-11-29 20:04
2003.12.23
Ru-Board


4-75456
KyRo
2003-10-29 22:11
2003.12.23
Разъясните работу функци Shell_NotifyIcon


14-75305
viper_cd
2003-12-02 10:19
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский