:: Главная :: Решения :: Статьи :: Проект "Русский help" :: Файловый архив :: Фотоальбом :: Ссылки ::
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  


Форумы  :: FAQ FoxPro

Как открыть файл в другом приложении
Дата: 15.06.05 22:18:10 ОтветитьЦитировать

Вопрос

У меня есть файл, созданный в другом приложении (XLS, PDF, DOC и т.п.). Как мне из FoxPro открыть соответствующее приложение и открыть в нем этот файл.

Ответ

Для этой цели используется специальная API-функция ShellExecute

Declare Long ShellExecute in Shell32 ;
Long hWnd, ; && хендл родительского окна
String lpOperation, ; && что сделать с файлом "open", "print", "explore"
String lpFile, ; && имя файла. Можно с путем доступа
String lpParameters, ; && используется только для исполняемых файлов
String lpDirectory, ; && директория, относительно которой надо искать файл
Integer ShowCmd && режим открытия приложения
* Это откроет Acrobat (если он есть)
mKod=ShellExecute(0, "open", "uidesign1.pdf", NULL, "C:\text", 1)
* Это отправит сразу на печать
mKod=ShellExecute(0, "print", "uidesign1.pdf", NULL, "C:\text", 1)
* Это откроет проводник Windows на указанной директории
mKod=ShellExecute(0, "explore", "C:\text", NULL, NULL, 1)

Если функция ShellExecute вернула значение больше 32, то команда выполнена успешно. В противном случае произошла какая-то ошибка.

Следует иметь в виду, что функция ShellExecute откроет только те файлы, расширение которых ассоциировано в операционной системе Windows с каким-либо приложением. Например, если на машине пользователя не установлен Acrobat, то и файлы с расширением pdf не смогут быть открыты. Просто нечем.

Также следует понимать, что Вы не можете из FoxPro получить доступ к приложению открытому через ShellExecute. Это приложение будет открыто как отдельный независимый от FoxPro процесс.

Если у вас стоит задача только открыть файл, то можно воспользоваться COM-интерфейсом Shell API следующим образом

Local loShell
loShell = CreateObject('Shell.Application')
loShell.Open("C:\text\uidesign1.pdf")

Кроме того, использование COM-интерфейса вызовет стандартный диалог Windows с предложением выбрать приложение, если в системе Windows не зарегистрировано приложение ассоциированное с указанным расширением файла.

К сожалению, через COM-интерфейс Shell API невозможно отправить документ на печать. В этом случае придется воспользоваться напрямую API-функцией ShellExecute



Исправлено 1 раз(а). Последнее : Владимир Максимов, 30.06.09 22:37
Ratings: 0 negative/0 positive


Тема Просмотров Написано Написано
  Работа с другими программами из FoxPro (Word, Excel и т.п.) 15909 Владимир Максимов 01.03.05 21:53
  Как мне вывести данные в существующий MS WORD документ 19926 Владимир Максимов 20.04.05 19:44
  Как открыть файл в другом приложении 14343 Владимир Максимов 15.06.05 22:18
  Как узнать значение константы Word или Excel 10790 Владимир Максимов 18.09.05 11:24
  Как узнать какая команда Word или Excel выполняет нужное действие 11965 Владимир Максимов 18.09.05 11:34
  Как заполнить таблицу в MS Word 16003 Владимир Максимов 20.01.07 17:35


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 1 (Гостей: 1)

© 2006 Fox Club 
Яндекс.Метрика