Вам необходимо связать с типом файла скрипт, который вы хотите запустить для этого типа. В Windows все это основано на расширении (по крайней мере, в XP я не знаю около 7, но сомневаюсь, что оно изменилось).
Скажите, что расширение ваших файлов - «.abc», а ваше приложение:
c:\program files\dummy\process.bat
(На данный момент я удалил переменную, я не уверен, как это ведет себя в файлах .reg)
Так что просто отредактируйте текстовый файл config.reg, который будет содержать следующее:
Windows Registry Editor Version 5.00
; the extension .abc gets associated with a file type
[HKEY_CLASSES_ROOT\.abc]
@="abc-file"
; the file-type gets a name (that appears in explorer in field "type")
[HKEY_CLASSES_ROOT\abc-file]
@="foo file"
; What will appear in the contextual menu when selecting an .abc file
[HKEY_CLASSES_ROOT\abc-file\shell\cmdname-1]
@="--- Process ! ----"
; What to do with it
; here, %1 is the file given as argument of the script
[HKEY_CLASSES_ROOT\abc-file\shell\cmdname-1\command]
@="\"c:\\program files\\dummy\\process.bat\" \"%1\""
Наконец импортируйте это. Вы сделали
Дополнительные комментарии:
- Все странные кавычки и обратная косая черта существуют для правильной обработки имен с пробелами. Да у меня сейчас ни у кого нет пробелов в именах файлов .. Или они? Во всяком случае, это происходит!
- Конечно, вы можете иметь несколько команд для типа файла. Просто дублируйте последние два ключа .reg (cmdname-1 ==> cmdname-2)
- Вы также можете связать различные расширения файлов с одним и тем же типом файла. например, HTML-файлы могут иметь .htm или .html
- Вы даже можете связать действие с папками. заменить тип файла на "папку"
- Это может быть полезно для обеспечения функциональности "удаления". Просто создайте другой reg-файл и добавьте префикс созданных ключей с помощью '-'.