Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
64 / 20 / 1
Регистрация: 29.07.2012
Сообщений: 151

Открыть файл программой, ассоциированной с ним

28.08.2012, 17:42. Показов 3439. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день появился ещё один вопрос: надо бы открыть файл не exe с помощью какой не будь программы.
Может можно как то выкрутиться с команды shell.
спасибо
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.08.2012, 17:42
Ответы с готовыми решениями:

Как открыть выбранный файл в ассоциированной программе?
Доброго времени суток, собственно пишу код, который будет открывать выбранный файл средствами Windows, т.е если файл = видео, то файл...

Открыть файл своей программой
Здравствуйте! Подскажите пожалуйста, как получить пусть к файлу, через который была открыта программа? Более подробнее: К примеру,...

Открыть файл своей программой
Нужно сделать так, чтобы расширение файла стало "ассоциироваться" у винды с запуском моего приложения и запуском в ней какой-то процедуры,...

11
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38194 / 21127 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
28.08.2012, 17:54
Не Shell, а API-функция ShellExecute

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
Public Declare Function ShellExecute Lib "shell32.dll" Alias _
                         "ShellExecuteA" _
                (ByVal hWnd As Long, ByVal lpszOp As String, _
                 ByVal lpszFile As String, _
                 ByVal lpszParams As String, _
                 ByVal lpszDir As String, _
                 ByVal FsShowCmd As Long) As Long
 
Public Declare Function GetDesktopWindow Lib "USER32" () As Long
 
Const SW_SHOWNORMAL = 1
 
Const SE_ERR_FNF = 2&
Const SE_ERR_PNF = 3&
Const SE_ERR_ACCESSDENIED = 5&
Const SE_ERR_OOM = 8&
Const SE_ERR_DLLNOTFOUND = 32&
Const SE_ERR_SHARE = 26&
Const SE_ERR_ASSOCINCOMPLETE = 27&
Const SE_ERR_DDETIMEOUT = 28&
Const SE_ERR_DDEFAIL = 29&
Const SE_ERR_DDEBUSY = 30&
Const SE_ERR_NOASSOC = 31&
Const ERROR_BAD_FORMAT = 11&
 
Public Function StartDoc(DocName As String) As Long
 
Dim Scr_hDC As Long
          
        Scr_hDC = GetDesktopWindow()
        
        StartDoc = ShellExecute(Scr_hDC, "Open", DocName, "", "C:\", SW_SHOWNORMAL)
          
End Function
 
Sub CheckRet(r As Long)
 
Dim Msg As String
 
    If r <= 32 Then
          
       '::: Произошла ошибка
              
       Select Case r
       
            Case SE_ERR_FNF
                Msg = "Файл не найден!"
            Case SE_ERR_PNF
                Msg = "Путь не найден!"
            Case SE_ERR_ACCESSDENIED
                Msg = "Доступ запрещен!"
            Case SE_ERR_OOM
                Msg = "Не хватает памяти!"
            Case SE_ERR_DLLNOTFOUND
                Msg = "DLL не найдена!"
            Case SE_ERR_SHARE
                Msg = "Произошло нарушение защиты для разд. ресурса!"
            Case SE_ERR_ASSOCINCOMPLETE
                Msg = "Неполная или неверная ассоциация для файла!"
            Case SE_ERR_DDETIMEOUT
                Msg = "Истек тайм-аут у сервера DDE!"
            Case SE_ERR_DDEFAIL
                Msg = "Неудачное завершение DDE-транзакции!"
            Case SE_ERR_DDEBUSY
                Msg = "Сервер DDE занят!"
            Case SE_ERR_NOASSOC
                Msg = "Для расширения не найдено ассоциации!"
            Case ERROR_BAD_FORMAT
                Msg = "Неверный формат EXE-файла или испорчен образ EXE-файла в памяти!"
            Case Else
                Msg = "Неизвестная ошибка!"
        End Select
              
        MsgBox Msg, , "Ошибка!!!"
             
    End If
 
End Sub
2
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,907
28.08.2012, 18:11
Catstail, а в процедуру
Visual Basic
1
Sub CheckRet(r As Long)
что передавать в качестве параметра - значение StartDoc?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38194 / 21127 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
28.08.2012, 18:17
Виноват, поторопился... Схема такая:

Visual Basic
1
2
3
   RC&=StartDoc("Имя_документа")
 
   CheckRet RC&
1
64 / 20 / 1
Регистрация: 29.07.2012
Сообщений: 151
28.08.2012, 18:30  [ТС]
Всё есть спасибо вам

Добавлено через 3 минуты
А как мне выбрать какой программой открыть?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38194 / 21127 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
28.08.2012, 18:34
Так в этот-то все и дело! Если у Вас установлено приложение ПППППП, и оно ассоциировано с расширением файла ".ппп", то при вызове StartDoc("C:\123\Проба.ппп") приложение ПППППП вызрвется автоматически. Вам ничего выбирать не надо - нужно только, чтобы расширение было правильным.
0
64 / 20 / 1
Регистрация: 29.07.2012
Сообщений: 151
28.08.2012, 18:38  [ТС]
Дело в том что по умолчанию на файл "Проба.ППП" не стоит программа ППППППП, а выполняться
файл будет не на моём компе и выбрать это умолчание не будет возможности
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38194 / 21127 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
28.08.2012, 18:43
Тогда этот подход бесполезен. Но возникает вопрос: есть файл приложения (например 123.xls), но на машине пользователя нет Excel-а. Чем его (файл) открыть? Ответ: только как двоичный файл и любоваться набором байтов...
0
64 / 20 / 1
Регистрация: 29.07.2012
Сообщений: 151
28.08.2012, 18:49  [ТС]
Предположим: на чужом компе не установлен vb
и для роботы программы надо регестрировать файл *.OCX
Беда в том что не стоит по умолчанию файл reg..какой то там

Добавлено через 1 минуту
файл regsvr32.exe, вот
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38194 / 21127 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
28.08.2012, 19:27
Цитата Сообщение от brifing Посмотреть сообщение
Предположим: на чужом компе не установлен vb
и для роботы программы надо регестрировать файл *.OCX
Беда в том что не стоит по умолчанию файл reg..какой то там
- это, извините, каша...
*.OCX - это общее расширение для визуальных компнентов. "Открывать" их не нужно. А regsvr32.exe - это утилита ОС. Ее не может не быть на компе
1
64 / 20 / 1
Регистрация: 29.07.2012
Сообщений: 151
28.08.2012, 20:09  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
"Открывать" их не нужно
Так ведь для регистрации нужно (мне это советовали и у меня вышло)
но указывать regsvr32.exe для открытия пришлось в ручную.
До этого ОС видела чем открывать *.OCX "Неизвестное приложение" в его свойствах
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
28.08.2012, 21:22
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от brifing Посмотреть сообщение
Открыть файл программой, ассоциированной с ним
Visual Basic
1
Shell "Cmd /C Start """" ""E:\MyFile.Doc""", 0
5
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.08.2012, 21:22
Помогаю со студенческими работами здесь

Открыть файл своей программой
Здравствуйте! Открываю файл к примеру text.txt с помощью своей программы, но в richtextbox значение файла text не поступает (просто пустой...

Открыть файл своей программой
Подскажите пожалуйста как сделать, через openfiledialog не подходит (т.е. когда появляется окно, где надо указать путь к файлу) нужно...

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

Открыть файл своей программой
Всем знатокам доброго времени суток! Написал код просмотра видео, но если пикнуть в проводнике на видео файл, то сама программа...

Как открыть файл из папки с программой?
Здравствуйте, как правильно указать путь, чтобы файл открылся из папки с программой? Пробовал '\Карты\Учебник\Высшая математика.doc' и...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru