Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Ассоциация файлов Добавлено: 26.05.03 12:37  

Автор вопроса:  Vit | Web-сайт: www.home-soft.jino-net.ru

Как мне сделать ассоциацию файла для моей программы (блокнот).

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

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Padre



ICQ: 346632205 

Вопросов: 25
Ответов: 215
 Web-сайт: localhost
 Профиль | | #1
Добавлено: 27.05.03 00:25

Врт кусок фака с www.vbrussian.com

 

Как сделать, чтобы моя "крутейшая" программа подвешивалась
на файлы с определенным расширением в качестве программы
по умолчанию (то есть DoubleClick в проводнике чтоб запускал
ее с именем файла на котором был клик)?

1. "Крутейшая" программа должна обрабатывать командную строку,
а именно брать оттуда путь и имя этого файла...
2. Смотрим, а не висит ли уже кто-либо на этом типе файлов....
Раздел [HKEY_CLASSES_ROOT\.ext], параметр [по умолчанию]
Пример: tmpStr = GetKeyValue(HKEY_CLASSES_ROOT, FileExt, "")
(Здесь FileExt - строковая константа, см. полный пример...)
Если никого нет, то tmpStr будет равно "".
3. Если никого нет, то создаем свой раздел DefaultReg, если кто-то уже
прицепился, то добавляем в его раздел (то есть в tmpStr).
Далее смотри код примера... Я даже комментариев понаписал...
(сколько смог...)
Полный пример (VB Код):

'Комментарии излишни по-моему...Private FullPathAndFileName As StringPrivate CmdLine As String'Определяет делать ли вообще то о чем идет речь...Private Const UpdReg As Boolean = True'Определяет ставить наше действие "по умолчанию" или нет...Private Const UpdDefault As Boolean = True'Расширение на которое подвешиваем свою программу...Private Const FileExt As String = ".rom"'Имя своего раздела в реестре если на этом типе файлов еще никто не висит...'(само имя ни на что не влияет)Private Const DefaultReg As String = "ROMfile"'Действие, которое будем делать над файломPrivate Const DefaultAct As String = "Convert"'Название действия, которое будем делать над файлом'(Проводник именно эту надпись выведет по правой кнопке)Private Const DefaultActName As String = "Преобразовать"'Описание файлов с таким расширением...Private Const ExtDescription As String = "Asm Output file"'Я это ставлю на Form_Load....Private Sub Form_Load()Dim tmpStr As String        'Определяем свой путь и имя файла        FullPathAndFileName = App.Path        If Right(App.Path,1) <> "\" Then FullPathAndFileName = FullPathAndFileName & "\"        FullPathAndFileName = FullPathAndFileName & App.EXEName & ".exe %1"        If UpdReg Then'А надо ли в реестр-то писать? [const]        'Считываем на предмет "висит" ли кто на этом типе файлов...    tmpStr = GetKeyValue(HKEY_CLASSES_ROOT, FileExt, "")    If tmpStr = "" Then'Если никто не висит...        tmpStr = DefaultReg'Делаем свою запись на это расширение        UpdateKey HKEY_CLASSES_ROOT, FileExt, "", tmpStr'Присобачиваем свое описание таких файлов...        UpdateKey HKEY_CLASSES_ROOT, tmpStr, "", ExtDescription    End If    If UpdDefault Then'Ставим свое действие "по умолчанию"UpdateKey HKEY_CLASSES_ROOT, tmpStr & "\shell", "", DefaultAct    End If    'Прописываем название действия    UpdateKey HKEY_CLASSES_ROOT, tmpStr & "\shell\" & DefaultAct, "", DefaultActName    'Прописываем пути и имя нашей программы....    UpdateKey HKEY_CLASSES_ROOT, tmpStr & "\shell\" & DefaultAct & "\command", "", FullPathAndFileNameEnd If    'И пошла командная строка...    CmdLine = Command    CmdLine = Trim(CmdLine)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам