Страница: 1 |
Страница: 1 |
Вопрос: Как связать файл с приложением?
Добавлено: 04.08.04 14:28
Автор вопроса: danser | ICQ: 299287824
Как научить приложение загружать в себя файли,
как это делает напр. MS Word если кликнуть по файлу с расш. *.doc?
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 04.08.04 18:45
См. аналогичные темы по форуму в VB6 и делай все то же... благо там нет ничего, окромя работы с реестром, и, по желанию, вызова еще всего одной АПИ...
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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
Ура всё получается, спасибо рябята идею понял теперь реализовать думаю будет не сложно. Вот что значит: "Хто питає той не блудить"