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

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

27.02.2024, 21:44. Показов 2078. Ответов 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
932 / 365 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
28.02.2024, 15:08
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от testuser2 Посмотреть сообщение
У вас 3703 сообщения и 536 тем в разделе VBA и вы не знаете как экранировать ковычки? Не верю
о, ты его просто плохо знаешь. Этот — необучаем. Оставь попытки — ему всё готовое и расжёванное нужно. Часто
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
29.02.2024, 07:47
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
но откуда в адресной строке взялось то, что я вижу
Потому что не хватает ковычек, и ShellExp передает параметр запуска хрому - строку с пробелом, это воспринимается хромом как два параметра. Здесь надо было просто добавить еще по ковычке. Ковычки внутри ковычек должны экранироваться ковычками, это простое правило..
Цитата Сообщение от testuser2 Посмотреть сообщение
fullpath = """" & path & "Эндрю Питоньяк1.pdf" & """"
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
932 / 365 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
29.02.2024, 10:02
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
как узнать какое приложение, открывает по умолчанию файлы pdf?
открыть PDF ручками
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
29.02.2024, 10:03  [ТС]
Цитата Сообщение от Jack Famous Посмотреть сообщение
открыть PDF ручками
никто и не спорит, а программно как?
0
932 / 365 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
29.02.2024, 10:30
Ципихович Эндрю, научитесь уже пользоваться поисковиком
Успехов!
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
536 / 354 / 146
Регистрация: 21.09.2016
Сообщений: 1,335
29.02.2024, 13:44
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
1 не взлетело
какие ваши доказательства.
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
29.02.2024, 13:48  [ТС]
Цитата Сообщение от Garic73 Посмотреть сообщение
какие ваши доказательства.
вот они:
Миниатюры
Открыть PDF файл  
0
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
29.02.2024, 13:52
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
неужели так много кода нужно для такого уточнения
Вообще мало понятна такая потребность, но для интереса глянул, выяснит это можно прочитав в реестре п пути
HKEY_CURRENT_USER\Software\Microsoft\Win dows\CurrentVersion\Explorer\FileExts\.p df\UserChoice
парметр Progid. Хотя в других версиях Windows (отличных от моей) это может отличаться.
1
536 / 354 / 146
Регистрация: 21.09.2016
Сообщений: 1,335
29.02.2024, 13:53
ну это говорит, что макрос отработал без ошибок, но не нашел, что у вас открывает пдф по умолчанию. Если из консоли cmd запустить assoc .pdf, что выдает?
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
29.02.2024, 13:57  [ТС]
Цитата Сообщение от Garic73 Посмотреть сообщение
Если из консоли cmd запустить assoc .pdf, что выдает?
.pdf=Acrobat.Document.DC
а на самом деле по умолчанию браузер Лиса
0
536 / 354 / 146
Регистрация: 21.09.2016
Сообщений: 1,335
29.02.2024, 14:00
а потом ftype Acrobat.Document.DC
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
29.02.2024, 14:09  [ТС]
Цитата Сообщение от Garic73 Посмотреть сообщение
а потом ftype Acrobat.Document.DC
Тип файлов 'Acrobat.Document.DC' не найден, или ему не сопоставлена команда открытия.
0
536 / 354 / 146
Регистрация: 21.09.2016
Сообщений: 1,335
29.02.2024, 14:14
т.е. у вас ассоциация на пдф Acrobat.Document.DC, а как его запускать система не знает.
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
29.02.2024, 14:18  [ТС]
что и говорит, что всякое бывает
ну на всякий у меня ОС вин 10х64

Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
Call ShellExecute(0, "open", path_file, "", "", SW_SHOWMAXIMIZED) 'приложение, открывающее по умолчанию файлы pdf
мне и надо узнать в чём же будет открыто
0
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
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
536 / 354 / 146
Регистрация: 21.09.2016
Сообщений: 1,335
29.02.2024, 14:20
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
мне и надо узнать в чём же будет открыто
вы же можете в строке запуска прописывать приложение каким хотите открыть, зачем извращаться, искать приложение по умолчанию?
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru