Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 | 2 |

 

  Вопрос: Ассоциация приложения с типом файлов Добавлено: 26.02.06 17:06  

Автор вопроса:  Android
На форме ListBox, CommandButton, CommonDialog.
Вот Код:


Private Const cdlOFNAllowMultiselect = &H200
Private Const cdlOFNCreatePrompt = &H2000
Private Const cdlOFNExplorer = &H80000
Private Const cdlOFNExtensionDifferent = &H400
Private Const cdlOFNFileMustExist = &H1000
Private Const cdlOFNHelpButton = &H10
Private Const cdlOFNHideReadOnly = &H4
Private Const cdlOFNLongNames = &H200000
Private Const cdlOFNNoChangeDir = &H8
Private Const cdlOFNNoDereferenceLinks = &H100000
Private Const cdlOFNNoLongNames = &H40000
Private Const cdlOFNNoReadOnlyReturn = &H8000
Private Const cdlOFNNoValidate = &H100
Private Const cdlOFNOverwritePrompt = &H2
Private Const cdlOFNPathMustExist = &H800
Private Const cdlOFNReadOnly = &H1
Private Const cdlOFNShareAware = &H4000
Private Const CD_FLAGS = cdlOFNAllowMultiselect + cdlOFNExplorer + cdlOFNLongNames

Private Sub Command1_Click()
With CommonDialog1
.CancelError = True
.MaxFileSize = 32000
.Filter = "All Files *.*/*.*"
.Flags = CD_FLAGS
.ShowOpen
myFiles = Split(.FileName, vbNullChar)
Select Case UBound(myFiles)
Case 0
List1.AddItem myFiles(0)
Case Is > 0
For i = 1 To UBound(myFiles)
myPath = myFiles(0) & IIf(Right(myFiles(0), 1) <> "\", "\", "") & myFiles(i)
List1.AddItem myPath
Next i
End Select
End With
End Sub
 

Задача: Надо зарегистрировать тип файлов, чтобы при запуске файла(ов) загружалась моя прога и он(и) автоматом добавлялись в ListBox.

Ответить

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

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



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 26.02.06 18:35
поиск по форуму + Command

Ответить

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



Вопросов: 6
Ответов: 23
 Профиль | | #2 Добавлено: 27.02.06 12:32
Сразу на ум приходят чужие слова : "Человек разобраться просит, а вы его таким куском кода... не стыдно-ли ? " :))
Если я понял, надо работать с командной строкой...тока я не понял тогда, где, как, куда прописывать эти параметры. :(
Не сможешь поподробнее объяснить?

Ответить

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



Вопросов: 24
Ответов: 332
 Профиль | | #3 Добавлено: 27.02.06 15:16
Сразу на ум приходят чужие слова : "Человек разобраться просит, а вы его таким куском кода... не стыдно-ли ? " :))

Дело в том, что не у всех есть свободное время (это то, которое сейчас оч. ценное) и искать надо самому. Самое простое сказать напиши, дай, помоги, срочно, пАмагите итд.
Лан, на счёт сабжа.
в реестре (HKEY_CLASSES_ROOT\.txt\Shell\Open\Command)пишешь C:\MyPath\MyProg.exe %1
Даблклик по файлу ТХТ - запускается твоя прога
Потом смотришь коммандную строку:
debug.print command
Run
D:\SomeFolder\SomeFile.txt

Ответить

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



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 27.02.06 21:29
Не сможешь поподробнее объяснить?

Это надо вписать в поиск по форуму :) Код кидал неоднократно, найти сумеешь точно :) и бех труда...

Ответить

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



Вопросов: 6
Ответов: 23
 Профиль | | #5 Добавлено: 27.02.06 22:22
Sne, я пробывал. Если искать в теме выдаёт 18 тем. Тебя, как автора, не видать :) А если ищу в тексте или везде "Ошибка сервера. Время ожидания вышло..."

Ответить

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



Вопросов: 6
Ответов: 23
 Профиль | | #6 Добавлено: 27.02.06 22:23
Насчёт свободного времени я прекрасно понимаю, я ни кого не тороплю. Если на мой вопрос не отвечают, тут может быть слишком много причин: от нехватки времени до неправильно сформулированного вопроса. Спасибо, что откликнулся, нашёл время. Только для меня, который занимается бейсиком месяца четыре, очень(!) многие вещи непонятны. И если ты найдёшь ещё время (а если не найдёшь, ничего страшного) продолжи отвечать на мои вопросы. Теперь по моей теме. Я дошёл до того, что при запуске C:\1.txt запускается MyProga.exe. Дальше я в тупике. Долго не мог понять строчку "Run". После поисков в справочниках по VB, понял, что такой процедуры нет. Решил, что это запуск VB-проекта(клавиша F5). Попробывал написать в событии Private Sub Command1_Click()
Debug.Print Command
End Sub
Запустил C:\1.txt, открылся MyProga.exe.
Запускаю проект, нажимаю на Command1... тишина (я даже не знаю, что происходит при Debug.Print, примерно догадываюсь, что на форме должно отобразиться какое - то сообщение)
Поехал дальше. Поумал: а не "Пуск-Выполнить" этот самый Run?
Открываю проект "MyProga", дописываю в событие Form_Load Debug.Print Command
Компилирую в MyProga.exe, запускаю C:\1.txt, соответственно загружается MyProga.exe. Пуск-Выполнить. В окне пишу C:\1.txt. Тишина...и только мертвецы стоят с косами... :)))
Даже если ты мне напишешь,как всё это делать, боюсь что у меня остануться вопросы. Я не представляю пока, как будет выглядеть строка, переданная из cmd и чё с ней делать. Опять же примерно догадываюсь, что полученную строку надо запихнуть в "MyProga - Свойства проекта(Property) - Вкладка Создание (Make) - Параметры командной строки". И возможно, тока после этого жисть заладится :)))
Надеюсь объяснил толково и без обид.

Ответить

Номер ответа: 7
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #7
Добавлено: 27.02.06 22:37
Допустим

Private Sub Command1_Click()
Dim i As Integer
For i = 1 To 10
    ;Debug.Print i
Next i
End Sub

Выводит в окно Immediate сообщение, здесь допустим "i" от 1 до 10

Тебе нужно по отладке почитать

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 27.02.06 22:38
Android, пойщи по поисковикам Ассоциация типа файла... найдёшь много примеров...

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #9 Добавлено: 27.02.06 22:52
[root], как всегда 100% в тему :))) я уже со слезами ору с тебя... :))) (не обижайся, ок?) :)

Android, смотри, передавать параметры очень просто...

Открой в любой папке меню...
Сервис>Свойства папки, вкладка "Типы файлов"... здесь отображаются все зарегестрированные (ассоциированные) типы файлов, смотрим например на txt... Находим в списке, выбераем, нажимаем "Дополнительно"... там доступные "действия" для этих файлов, грубо говоря меню которое высвечивается когда нажимаешь на txt правой кнопкой мыши... по умолчанию обычно команда "open", выбераем её в списке, смотрим путь... У меня например
D:\Program Files\Bred3\Bred3_2k.exe "%1"

Bred3_2k.exe как ты понял, прога которая просматривает у меня файлы txt, а далее... "%1" вот именно эта фишка и указывает на то что твоей проге в командную строку будет передан путь к файлу на котрый кликнули (который открывают (команду open мы смотри же, если внимательный)) С этим надеюсь всё ясно, теперь как принимать эти параметры...

...Form_Load()
msgbox Command$
end
End Sub...

компилируем в exe, далее играемся...
Надесю как ручками проги параметры передать - знаешь... В коммандной строке (cmd.exe) или через Пуск>Выполнить пишем...

путь_к_проге\имя.exe тра-ля-ля это и есть параметры

вот запустишь прогу так, и вылитит массажбокс "тра-ля-ля это и есть параметры"

Есть ещё вопросы?

Ответить

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



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #10
Добавлено: 28.02.06 00:20
Тебя, как автора, не видать :)

А с чего бы я стал автором? Т.е. я задал вопрос и сам на него ответил :) ? Смешно!

Ответить

Номер ответа: 11
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #11
Добавлено: 28.02.06 07:53
2HACKER:
        ;(не обижайся) - ты особо на эту тему не напрягайся.
        я просто твои ответы не читаю почти и все
        Не знаю тебе энергию не куда девать или что, да и не важно
        Отдыхай

Ответить

Номер ответа: 12
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #12
Добавлено: 28.02.06 08:00
HACKER кстати кто из нас флудер можно подумать еще, если ты все мои ответы
коментируешь, такое ощущение, что тебя что то задевает.
Если тебе не нравиться что то просто молчи и все и тебе и всем будет
хорошо, ни кто же твои посты не коментирует - хотя можно наговорить
такого, ну да ладно забей - это все чушь(я тебя просто буду
игнорировать если будешь продолжать).
Ты не считаешь глупым(как для детей, первый раз вылезших в инет)
ругаться и пытаться подколоть чем только можно.
давай отвечай на мыло, если хочешь, не бум засорять форум

Ответить

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



Вопросов: 6
Ответов: 23
 Профиль | | #13 Добавлено: 28.02.06 12:53
Спасибо, что нашли время!

[root], я создал новый проект, вписал в событие Command1_Click этот код, но я ничего не увидел, даже когда оглянулся :))). Что такое Immediate сообщение, я естественно не знаю. Если писать Form.Print, тогда на форме пропечатываются в столбик цифры цикла от 1 до 10, а Debug.Print...

Hacker, полно ещё вопросов! :)
Может быть я неправильно изложил суть вопроса или просто не могу понять ответы...
Мои действия:
Открыл проект (код смотри выше). Добавил событие
Private Sub Form_Load()
msgbox Command$
end
End Sub
Скомпилировал проект в Project1.exe. Переместил проект на диск С (C:\Project1.exe, создал файл C:\1.txt). Влез в "Типы файлов" поменял строку C:\WINDOWS\NOTEPAD.EXE "%1" на C:\Project1.exe "%1". Запустил C:\1.txt, появился MsgBox "C:\1.txt". Ура? Нет, ещё рано.... Пуск - Выполнить... В окне написал C:\project1.exe C:\1.txt, появился тот же MsgBox, только текст был без кавычек. Понял, что не напиши в окне "Выполнить" после "C:\Project1.exe", то и появится в месаджбоксе.
Я испробывал несколько вариантов ( удалял End в событии FormLoad, переносил msgbox в событие Command1_Click, добавлял в свойства проекта - вкладка Make- параметры ком.строки C:\1.txt, *.txt), но результата не получил. А результат должен быть таким: при даблклике на файле с расширением txt ( допустим C:\1.txt), должна запуститься моя прога (C:\Project1.exe) и в листбокс должна добавиться строка C:\1.txt.
Повторюсь, может ответ уже мне был дан, тока я так ничего и не понял :(

Ответить

Номер ответа: 14
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #14
Добавлено: 28.02.06 14:24
Immediate - это не сообщение, а окно, когда запускаешь проект внизу
экрана

Ответить

Номер ответа: 15
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #15 Добавлено: 28.02.06 15:40
2 Android: в общем, смотри:

Command$ - командная строка. Все то, что находится после пути к твоей проге. Например, пишешь в "Пуск -> Выполнить": "C:\Project1.exe C:\Test.txt", тогда в Command$ будет "C:\Text.txt". Пишешь "C:\Project1.exe -options C:\My_File.txt" в Command$ будет "-options C:\My_File.txt".

Теперь. Раз ты поменял открываемую прогу на твою, пишешь следующее:
Private Sub Form_Load
   Call List1.AddItem(Command$)
End Sub

И все.

Ответить

Страница: 1 | 2 |

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



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