Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
issa
0 / 0 / 0
Регистрация: 02.06.2009
Сообщений: 8
#1

Как программно сопоставить файл с программой.

02.06.2009, 17:14. Просмотров 714. Ответов 1
Метки нет (Все метки)

Есть программа, которая создает файл с собственным расширением .ХХХ. Как можно сделать так, чтобы при двойном нажатии на файле *.ХХХ автоматически запустилась программа?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2009, 17:14
Ответы с готовыми решениями:

Программно ассоциировать файл с программой
Здравствуйте, подскажите как лучше всего программно провернуть такое: при...

Как создать файл *txt в папке с программой
Помогите пожалуйсто ,как создать файл *txt?В той-же папке,в которой хранится...

Как открыть файл той программой тип которой отвечает за открытие этого файла?
Например когда запускаешь файл *.txt то открывается программа NotePad и текст...

Как программно открыть .csv-файл?
Как программно открыть .csv-файл? SHELL-ом откраваются приложения, а файлы?

Как программно создать файл .xls???
Можт кто знает как из VB создать *.xls??? черканите...

1
Mistique
0 / 0 / 0
Регистрация: 17.06.2008
Сообщений: 30
02.06.2009, 18:39 #2
Ассоциация с типами файлов

Следующий код предназначен для того, чтобы ассоциировать определённый тип файлов с Вашей программой:

'// Объявления

'// Функции
Private Declare Function RegCreateKeyEx Lib 'advapi32.dll' Alias 'RegCreateKeyExA' (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long
Private Declare Function RegSetValueEx Lib 'advapi32.dll' Alias 'RegSetValueExA' (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

'// Структуры

Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean
End Type

'// Константы
Const HKEY_CLASSES_ROOT = &H80000000
Const REG_SZ = 1
Const KEY_ALL_ACCESS = &H3F

'// Функция для ассоциации типа файла с приложением
'// FileType - расширение файла

Public Sub AsProgram(FileType As String)
Dim retval As Long
Dim Result As Long
Dim SA As SECURITY_ATTRIBUTES
Dim sPath As String

'// Создаем ключ для программы
retval = RegCreateKeyEx(HKEY_CLASSES_ROOT, App.Title, 0, vbNullString, 0, KEY_ALL_ACCESS, SA, Result, &H1)
'// Присваиваем значению по умолчанию название программы
RegSetValueEx Result, '', 0, REG_SZ, ByVal App.Title, Len(App.Title)

'// Создаём ключ, связанный с расширением файла
retval = RegCreateKeyEx(HKEY_CLASSES_ROOT, FileType, 0, vbNullString, 0, KEY_ALL_ACCESS, SA, Result, &H1)
'// Присваиваем значению по умолчанию название программы
RegSetValueEx Result, '', 0, REG_SZ, ByVal App.Title, Len(App.Title)

'// Последние шаг - ассоциация типа с приложением

'// Определяем командную строку для приложения
If Right(App.Path, 1) = ' ' Then
sPath = App.Path & App.EXEName & '.exe %1'
Else
sPath = App.Path & ' ' & App.EXEName & '.exe %1'
End If

retval = RegCreateKeyEx(HKEY_CLASSES_ROOT, App.Title & 'shellopencommand', 0, vbNullString, 0, KEY_ALL_ACCESS, SA, Result, &H1)
RegSetValueEx Result, '', 0, REG_SZ, ByVal sPath, Len(sPath)

End Sub

Пример использования:

AsProgram '.txt'
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2009, 18:39

Как программно создать DBF-файл?
Помогите пжста советом! Нужно программно создать dbf-файл и записать туда...

Как программно открыть Excel файл?
Создаю файл, вношу данные, сохраняю... А как его програмно открыть то? что то...

Как на VB программно зарегистировать dll файл?
Как на VB программно зарегистировать dll файл?


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru