Главная страница
    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
4-75443
Nick_Omsk
2003-10-29 19:50
2003.12.23
Как сделать независимую форму и невидимую в TaskBar


14-75336
Undert
2003-11-29 22:11
2003.12.23
Одноразовая работка


14-75369
saNat
2003-11-29 00:35
2003.12.23
Изменение приоритета процесса


14-75371
Petrovich
2003-11-28 23:37
2003.12.23
Ссылки


3-75081
alless
2003-12-01 11:11
2003.12.23
Как узнать что поменялся Width колонки в DBGrid?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский