![]() |
|
Модераторы: bartram, Akella |
![]()
|
|
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Думаю не для кого не секрет, что в Windows (xp точно), при "перетаскивание", на пример, php скрипта на exe-шник NotePad++, автоматически происходит открытие этого скрипта в NotePad++.
Так вот, очень хотелось бы узнать, какой алгоритм при этом отрабатывается? Ведь по логике программа должна каким-то образом получить информацию (в данном случае путь к файлу) и, воспользовавшись им открыть этот файл. Т.е. обработчик такого события должен быть заранее заложен в программу. Для чего мне это надо? У меня есть ARG-архиватор (хотя можно в примере привести даже RAR-архиватор), думаю API у них идентичны, если говорить о бинарниках. Я хочу сделать так, чтоб при перетаскивание файла на exe-шник или другой, доработанный файл архиватора, автоматически создавался архив с таким же именем, что и у архивируемого файла. В случае с ARG, есть возможность доработки когда т.к. код открытый. Если кто к объяснению работы этих алгоритм предложение и конкретный пример реализации приведенной задачи, буду благодарен вдвойне. Так же не побрезгую качественным чтивом по этому вопросу. |
|||
|
||||
| bartram |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: 12 Всего: 29 |
Программа получает имя файлы в качестве первого переданного параметра. А винда этот параметр передает при перетаскивания файла на exe'шник. Вот поэтому получается, что
|
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Я могу ошибаться, но полагаю, что имя файла совсем скудная информация для обработки и моя версия про путь к файлу, больше похожа на правду. Если так, получается надо переписывать исходный код программы? |
|||
|
||||
| bartram |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: 12 Всего: 29 |
Вам только кажется, что передается только имя файла, на самом деле и путь тоже передается ;-) Добавлено через 35 секунд Вы о чем? |
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Я о третьем абзаце, как это реализовать?
|
|||
|
||||
| jhonyxakep |
|
|||
![]() Divide Et Impera ![]() ![]() Профиль Группа: Участник Сообщений: 983 Регистрация: 7.4.2009 Где: Что, Когда? Репутация: 3 Всего: 8 |
Батник написать можно %1 1-ый переданный аргумент, если хочется архива с таким же именем, то надо на параметр, с выходным файлом(архивом) передать путь, архив положится в ту же папку, только надо заставить архиватор всегда прибавлять свое расширение (*.rar и тд) |
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Ясно, в первом переданном аргументе мы имеем путь к файлу и можем написать следующий пакетный файл, учитывая что бинарник ARJ лежит в корне диска C.
Пол дела сделано, теперь встает вопрос, как узнать конкретно имя передаваемого файла, причем желательно без расширения, ведь передавать в качестве имени архива путь к файлу как-то не корректно. Добавлено через 5 минут и 50 секунд Пока разбирался понял уже точно как это работает, после прочтения статьи с сайта System Engineering. Получается имя файла мы так просто не получим. Пойду искать как bat-ник может работать со строками. Добавлено через 12 минут и 19 секунд Еще накопал встроенные в Windows справочники по командным строкам. (открываются через выполнить) XP Prof "hh ntcmds.chm" XP home "hh ntcmds.chm::/ntcmds.htm" w2k "hh windows.chm::/ntcmds.htm" |
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Прочел, если верить источнику, полный список команд, среди них не нашел не одного намека на работу со строками. Пойду думать, как решить этот вопрос написанием консольного приложения на Delphi.
|
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Вот что у меня получилось.
С rar-ом работает отлично, а вот с arj бывают проблемы: порой отказывается работать в некоторых каталогах. На сколько я понимаю это проблема самого arj.
Это сообщение отредактировал(а) BuShaRt - 6.3.2010, 16:52 |
|||
|
||||
![]()
|
| Правила форума "Windows" | |
|
|
Запрещается! 1. Обсуждать взлом и делиться кряками 2. Способствовать созданию и распространению вирусов
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Windows | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |