Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335

Открыть PDF файл

27.02.2024, 21:44. Показов 2395. Ответов 45
Метки pdf (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте
при открытии файла из Ворда вручную появляется окно "Преобразование файла" - я все опции не опробовал, но то, что пробовал - не взлетело
вопрос такой: как в макросом открыть пдф файл по нужному пути? спасибо
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.02.2024, 21:44
Ответы с готовыми решениями:

Открыть pdf файл
Как открыть pdf файл? Желательно без установки читалок.

Как открыть .pdf файл из VB программы?
Как открыть .pdf файл из VB программы?

Как запустить (открыть) pdf фаил по пути хронящейся в переменной?
Как запустить (открыть) pdf фаил по пути хронящейся в переменной?

45
933 / 366 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
28.02.2024, 15:08
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от testuser2 Посмотреть сообщение
У вас 3703 сообщения и 536 тем в разделе VBA и вы не знаете как экранировать ковычки? Не верю
о, ты его просто плохо знаешь. Этот — необучаем. Оставь попытки — ему всё готовое и расжёванное нужно. Часто
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
29.02.2024, 06:49  [ТС]
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
а что у них по разному путь надо прописывать?
ну ладно если для хрома отдельно прописать:
Visual Basic
1
2
3
Dim fullpathChrome$
       fullpathChrome = Replace$(fullpath, " ", "%20")
       Call ShellExecute(0, "open", "chrome.exe", fullpathChrome, "", SW_SHOWMAXIMIZED) 'Хром
файл также не откроется, это пол беды, но откуда в адресной строке взялось то, что я вижу
......Эндрю%2520Питоньяк....... 25 откуда надуло? спасибо
0
1402 / 860 / 93
Регистрация: 08.02.2017
Сообщений: 3,671
Записей в блоге: 2
29.02.2024, 07:47
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
но откуда в адресной строке взялось то, что я вижу
Потому что не хватает ковычек, и ShellExp передает параметр запуска хрому - строку с пробелом, это воспринимается хромом как два параметра. Здесь надо было просто добавить еще по ковычке. Ковычки внутри ковычек должны экранироваться ковычками, это простое правило..
Цитата Сообщение от testuser2 Посмотреть сообщение
fullpath = """" & path & "Эндрю Питоньяк1.pdf" & """"
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
29.02.2024, 09:18  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
Здесь надо было просто добавить еще по ковычке
ок, сделал:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Option Explicit
 
'Декларация функции для запуска файла
Public Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
 
Public Const SW_SHOWMAXIMIZED = 3
 
Sub Main()
    Dim path$
    path = "I:\события документа\"
    Dim file$
    file = "Эндрю Питоньяк1.pdf"
    Dim path_file$
    path_file = path & file
    If Len(Dir(path_file)) = 0 Then
        MsgBox "Отсутствует требуемый файл", 48, "Ошибка"
    Else
       Call ShellExecute(0, "open", path_file, "", "", SW_SHOWMAXIMIZED) 'приложение, открывающее по умолчанию файлы pdf
       path_file = """" & path_file & """"
       Call ShellExecute(0, "open", "chrome.exe", path_file, "", SW_SHOWMAXIMIZED) 'открыть pdf файл с помощью браузера Chrome
   End If
спасибо, а как узнать какое приложение, открывает по умолчанию файлы pdf?
0
933 / 366 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
29.02.2024, 10:02
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
как узнать какое приложение, открывает по умолчанию файлы pdf?
открыть PDF ручками
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
29.02.2024, 10:03  [ТС]
Цитата Сообщение от Jack Famous Посмотреть сообщение
открыть PDF ручками
никто и не спорит, а программно как?
0
933 / 366 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
29.02.2024, 10:30
Ципихович Эндрю, научитесь уже пользоваться поисковиком
Успехов!
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
29.02.2024, 10:42  [ТС]
Цитата Сообщение от Jack Famous Посмотреть сообщение
научитесь уже пользоваться поисковиком
прежде чес спросить я конечно же гуглил, нагуглил
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub GetDefaultAppForPdf()
    Dim cmd As String
    cmd = "cmd /c assoc .pdf"
    Dim wsh As Object
    Set wsh = CreateObject("WScript.Shell")
    Dim output As String
    output = wsh.Exec(cmd).StdOut.ReadAll()
 
    Dim association As String
    association = Split(output, "=")(1)
    association = Trim(association)
 
    cmd = "cmd /c ftype " & association
    output = wsh.Exec(cmd).StdOut.ReadAll()
 
    Dim defaultApp As String
    defaultApp = Trim(output)
 
    MsgBox "The default application for opening PDF files is: " & defaultApp, vbInformation, "Default PDF Application"
 
    Set wsh = Nothing
End Sub
1 не взлетело
2 неужели так много кода нужно для такого уточнения?
0
589 / 366 / 149
Регистрация: 21.09.2016
Сообщений: 1,379
29.02.2024, 13:44
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
1 не взлетело
какие ваши доказательства.
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
29.02.2024, 13:48  [ТС]
Цитата Сообщение от Garic73 Посмотреть сообщение
какие ваши доказательства.
вот они:
Миниатюры
Открыть PDF файл  
0
1402 / 860 / 93
Регистрация: 08.02.2017
Сообщений: 3,671
Записей в блоге: 2
29.02.2024, 13:52
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
неужели так много кода нужно для такого уточнения
Вообще мало понятна такая потребность, но для интереса глянул, выяснит это можно прочитав в реестре п пути
HKEY_CURRENT_USER\Software\Microsoft\Win dows\CurrentVersion\Explorer\FileExts\.p df\UserChoice
парметр Progid. Хотя в других версиях Windows (отличных от моей) это может отличаться.
1
589 / 366 / 149
Регистрация: 21.09.2016
Сообщений: 1,379
29.02.2024, 13:53
ну это говорит, что макрос отработал без ошибок, но не нашел, что у вас открывает пдф по умолчанию. Если из консоли cmd запустить assoc .pdf, что выдает?
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
29.02.2024, 13:57  [ТС]
Цитата Сообщение от Garic73 Посмотреть сообщение
Если из консоли cmd запустить assoc .pdf, что выдает?
.pdf=Acrobat.Document.DC
а на самом деле по умолчанию браузер Лиса
0
589 / 366 / 149
Регистрация: 21.09.2016
Сообщений: 1,379
29.02.2024, 14:00
а потом ftype Acrobat.Document.DC
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
29.02.2024, 14:09  [ТС]
Цитата Сообщение от Garic73 Посмотреть сообщение
а потом ftype Acrobat.Document.DC
Тип файлов 'Acrobat.Document.DC' не найден, или ему не сопоставлена команда открытия.
0
589 / 366 / 149
Регистрация: 21.09.2016
Сообщений: 1,379
29.02.2024, 14:14
т.е. у вас ассоциация на пдф Acrobat.Document.DC, а как его запускать система не знает.
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
29.02.2024, 14:18  [ТС]
что и говорит, что всякое бывает
ну на всякий у меня ОС вин 10х64

Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
Call ShellExecute(0, "open", path_file, "", "", SW_SHOWMAXIMIZED) 'приложение, открывающее по умолчанию файлы pdf
мне и надо узнать в чём же будет открыто
0
1402 / 860 / 93
Регистрация: 08.02.2017
Сообщений: 3,671
Записей в блоге: 2
29.02.2024, 14:18
Лучший ответ Сообщение было отмечено Ципихович Эндрю как решение

Решение

Visual Basic
1
2
3
4
5
6
Sub PDFProg()
    Const PDFAssocKey$ = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice\ProgId"
    Dim sProg$
    sProg = CreateObject("WScript.Shell").RegRead(PDFAssocKey)
    MsgBox sProg
End Sub
2
589 / 366 / 149
Регистрация: 21.09.2016
Сообщений: 1,379
29.02.2024, 14:20
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
мне и надо узнать в чём же будет открыто
вы же можете в строке запуска прописывать приложение каким хотите открыть, зачем извращаться, искать приложение по умолчанию?
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
29.02.2024, 14:27  [ТС]
Цитата Сообщение от Garic73 Посмотреть сообщение
вы же можете в строке запуска прописывать приложение каким хотите открыть, зачем извращаться, искать приложение по умолчанию?
потому как ещё нужно городить огород по поводу какие же на ПК стоят программы а так сообщение № 38 = 4 строки сказало
FirefoxPDF-ясно и понятно, спасибо всем откликнувшимся
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.02.2024, 14:27

Как открыть pdf-файл
Как из вба, нажатием на кнопку, открыть документ в формате пдф

Можно ли: открыть файл PDF внешним приложением Inkscape и скопировать из него содержимое?
возможно ли открыть файл в PDF внешним приложением (Inkscape) и скопировать в буфер содержимое ? 1. хотел подключить библиотеку InkScape...

Как создать PDF файл с именем ZAKAZ_(дата сегодня).pdf
Как создать из "Excel таблицы" - PDF файл с именем ZAKAZ_(дата сегодня).pdf при помощи макроса? Есть такой макрос: Sub...

Открыть файл, разделить ячейку на 1000, сохранить файл, закрыть файл
Макрос должен запускаться, спрашивать - какой файл ему взять. Открыть его, разделить определенную ячейку на 1000, сохранить файл. ...

Не могу открыть в PDF читалке в форме PDF файл имя которого хранится в БД Access
в приложении есть поиск он ищет в БД(1 таблица, 2 поля) и если в поисковую строку вводится название проблемы схожее с имеющейся в БД(1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru