Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Как связать файл с приложением? Добавлено: 04.08.04 14:28  

Автор вопроса:  danser | ICQ: 299287824 
Как научить приложение загружать в себя файли,
как это делает напр. MS Word если кликнуть по файлу с расш. *.doc?

Ответить

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

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



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 04.08.04 18:45
См. аналогичные темы по форуму в VB6 и делай все то же... благо там нет ничего, окромя работы с реестром, и, по желанию, вызова еще всего одной АПИ...

Ответить

Номер ответа: 2
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 04.08.04 18:45
См. аналогичные темы по форуму в VB6 и делай все то же... благо там нет ничего, окромя работы с реестром, и, по желанию, вызова еще всего одной АПИ...

Ответить

Номер ответа: 3
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #3 Добавлено: 04.08.04 21:52
Мне надо на VB.NET

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 05.08.04 00:17
Какая разница !? или тебе лень переписать ?

Ответить

Номер ответа: 5
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #5 Добавлено: 05.08.04 00:57
Ну тогда будь добр подкажи эти аналогичные темы(ссылки или хотя бы идею...),
а то я не в курсе...
А на счет того что лень:
Я в VB .NET как видиш не силен, а с 6-м бейсиком и апи функциями вобще почти не стыкался...

Ответить

Номер ответа: 6
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 05.08.04 01:12
В VB.NET есть объект для общения с реестром. Пиши с его помощью в раздел HKCR\.doc\@ название файла типа "Word.Document", а потом в HKCR\Word.Document\shell\@="open", в HKCR\Word.Document\shell\open\command\@="c:\yourproga.net.exe(?) %1"

Ответить

Номер ответа: 7
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #7
Добавлено: 05.08.04 09:17
Для работы с реестром см. классы из пространства имен System.Win32:
Registry, RegistryKey.

Ответить

Номер ответа: 8
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #8 Добавлено: 05.08.04 18:34
В принципе запрограмировать с помощью класов Registry, RegistryKey реестр я понял как. Нон не понимаю некоторых принципов самой Windows

Ветка в реестре HKCR это как я понял HKEY_CLASSES_ROOT ?
Здесь как я понял хранятся извесные системе типы файлов и приложения что их обрабатывают?
Мне надо обрабативать тип файла .tst но вернемся к примеру расширения .doc как я понял принцип один и тот же для всех расширений.
В реестре (HKEY_CLASSES_ROOT/.doc) я нашел два раздела
HKEY_CLASSES_ROOT\.doc\PersistentHandler
HKEY_CLASSES_ROOT\.doc\Word.Document.8
Что эти разделы значат?
И ещё
1. Как система делает контексное меню для типа файла(напр. для *.doc), ну там "Открить", "Изменить" и тд.-это как то зависит от реестра?
2. Как система определяет какое приложение должно обрабатываеть тот или иной тип файла?
3. Как приложению(при разработке) обяснить что оно должно бить готовым получить какой-то параметр(например имя файла) от системы и как этот параметр передается приложению системой?

Ответить

Номер ответа: 9
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #9
Добавлено: 06.08.04 03:15
Гы. Я думал, там и так все понятно.
Разные извраты - это для работы разных там OLE, COM и полезной штуки, называемой context menu handlers. А контекстное меню в основе своей формируют для, например, *.arj следующие места в реестре:
HKCR\.arj\@="WinRAR" - тип файла
HKCR\WinRAR\ - содержит информацию об обработке этого типа
HKCR\WinRAR\DefaultIcon\@="C:\PROGRAM FILES\WINRAR\WinRAR.exe,0" - иконка для данного типа файлов
HKCR\WinRAR\shell\ - действия, которые могут быть произведены над файлом
HKCR\WinRAR\shell\@="" - действие по умолчанию, которое следует произвести над файлом. Обычно "open", но если действие одно, то может быть и пустым. Затем в
HKCR\WinRAR\shell\open\command\@=""C:\PROGRAM FILES\WINRAR\WinRAR.exe" "%1"" - командная строка, которая исполняется при выборе в контекстном меню для файла этого типа пункта "Открыть"
HKCR\WinRAR\shell\open\@="&Открыть" - что будет выводиться в контекстное меню. Можно оставить это значение пустым, тогда пункт меню будет называться по имени раздела реестра, т.е. "open"
Вот, вроде, и вся сложность.

Ответить

Номер ответа: 10
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #10
Добавлено: 06.08.04 03:17
Типа, если вдруг непонятно, ""C:\PROGRAM FILES\WINRAR\WinRAR.exe" "%1"" означает, что вызывается рар с параметром - имя файла (файлов (если файлов, то они перечислены через запятую)). А в приложении получить командную строку, которой оно было вызвано, можно с помощью a=command

Ответить

Номер ответа: 11
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #11 Добавлено: 06.08.04 14:55
СПАСИБО я прозрел :)). Всё понял за исключением:
'А в приложении получить командную строку, которой оно было вызвано, можно с помощью a=command
Вот есть у меня програма, мне что надо в лоаде програми проверять значение a=command в реестре?

Ответить

Номер ответа: 12
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #12
Добавлено: 06.08.04 15:02
При загрузке программы смотри Environment.Commandline.

Ответить

Номер ответа: 13
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #13 Добавлено: 06.08.04 16:17
Я указал в реестре (для примера) HKCR\WinRAR\shell\open\command\@=""C:\PROGRAM FILES\WINRAR\WinRAR.exe" "%1
В програме в Лоаде я вывожу эту самую строку MsgBox(Environment.CommandLine)
видает "C:\PROGRAM FILES\WINRAR\WinRAR.exe 1
Я думал вместо 1 - системой должно передавтся полное имя файла которое активизировало эту команду. Как мне указать в реестре что должно передаватся имя файла, ведь если я напишу в реестре
HKCR\WinRAR\shell\open\command\@=""C:\PROGRAM FILES\WINRAR\WinRAR.exe" "%ABC, програма получит CommandLine:
C:\PROGRAM FILES\WINRAR\WinRAR.exe ABC ,а мне нужно имя(желательно полный путь)файла

Ответить

Номер ответа: 14
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #14
Добавлено: 06.08.04 17:42
А где 2 закрывающие кавычки в строке ""C:\PROGRAM FILES\WINRAR\WinRAR.exe" "%1? Имя файла передается вместо %1, а не просто 1.

Ответить

Номер ответа: 15
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #15 Добавлено: 06.08.04 19:48
Ура всё получается, спасибо рябята идею понял теперь реализовать думаю будет не сложно. Вот что значит: "Хто питає той не блудить"

Ответить

Страница: 1 |

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



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