Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Открыть файл Word [D7, WinXP]


Кашперук Иван ©   (2006-03-18 04:48:00) 

Как произвести открытие файла - знаю путь к нему - через ShellExecute?

Разрешение - .doc

Пишу

uses ShellApi;

ShellExecute(Application.Handle, 'open', PAnsiChar(filePath + 'file.doc'), '', '', SW_SHOWNORMAL);


Не ругается никак, но и Ворд не открывает.

Как отрыть файл указанный в Ворде?
Спасибо


Andrey.Ru   (2006-03-19 18:15:00) [1]

сорри здесь ненадо двойных ковычек

ShellExecute(Application.Handle, 'open', PAnsiChar(You_path + 'file.doc'), nil, nil, SW_NORMAL);

Если не получается проверь свой путь сделай бональный ШоуМессадж
ShowMessage(You_path + 'file.doc');
Проверь наличие всех слешей...


Andrey.Ru   (2006-03-19 18:12:00) [2]

ShellExecute(Application.Handle, 'open', PAnsiChar('"C:\1\file.doc"'), nil, nil, SW_SHOWNORMAL);


YurikGL   (2006-03-19 17:29:00) [3]


> Вот у меня однажды двойные кавычки проблему решили. Почему-
>  не знаю. Наверно, что-то с сишным синтаксисосм связано

Да нет.... просто в винде, когда в пути к файлу содержатся пробелы, его (путь) надо передвать в кавычках...

Возможно, кроме пробелов, там есть еще какие-нибудь символы, требующие кавычки, но я уже этого не помню...


TStas   (2006-03-19 17:21:00) [4]

Вот у меня однажды двойные кавычки проблему решили. Почему- не знаю. Наверно, что-то с сишным синтаксисосм связано


YurikGL   (2006-03-18 21:28:00) [5]

>ShellExecute(Application.Handle, 'open', PAnsiChar('C:\1\file.doc'), '', '', SW_SHOWNORMAL);

попробуй
ShellExecute(Application.Handle, 'open', PAnsiChar('"C:\1\file.doc"'), '', '', SW_SHOWNORMAL);

т.е. весь путь заключи в двойные кавычки....


TStas   (2006-03-18 20:48:00) [6]

Можно же через СОМ открыть ворд , а в нем открыть файл, раз путь известен


Кашперук Иван   (2006-03-18 17:01:00) [7]

Нет, \ не забыл.

Решил только что наконец эту проблему, после того, как прочитал ваше сообщение - хоть убедился, что я еще не туплю. :)

Оказывается, все дело было в (8 + 3) пути к файлу - он какой-то очень странный, как по мне, видимо из-за русских символов.

Настоящий путь к файлу:
E:\Учеба\Защита информации\Расчетка\Answer3.doc

Тот, который выдает GetShortPathName() {кстати, несколько разных модификаций перепробовал - одной и той же функции полностью, пока наконец она начала выдавать непустую строку}

E:\A669~1\37C5~1\8A03~1\Answer3.doc

Просто уничтожило мое понимание перевода длинного пути в короткий :))


Чародей   (2006-03-18 14:38:00) [8]

ShellExecute(Application.Handle, 'open', PAnsiChar('C:\1\file.doc'), '', '', SW_SHOWNORMAL);
Работает. Может в filePath слеш забыл?


Наверх

Титульная страница Поиск, карта сайта Написать письмо