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

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

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

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

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

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

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

11
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 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,904
28.08.2012, 18:11
Catstail, а в процедуру
Visual Basic
1
Sub CheckRet(r As Long)
что передавать в качестве параметра - значение StartDoc?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 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
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 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
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 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
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 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
18030 / 7733 / 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
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru