Nie chce mi się wślepiać w twój konkretny przykład, ale walczyłam kiedyś z czymś podobnym, chcąc, żeby w przeglądarce dało się otwierać linkami pliki txt w Notepad++ z numerem linii do której dokument ma być przewinięty zaraz po otwarciu przekazanym jako parametr (służyło to do otwierania błędnych pozycji w plikach konfiguracyjnych).
Problem w ogólności poległ na tym (i mniemam, że u ciebie jest podobnie), że format parametru podawanego przez protokół i oczekiwanego przez program wywołany z poziomu konsoli jest inny i trzeba go najpierw przekonwertować, żeby dawał się użyć. Procedura jest taka:
- protokół wskazuje na plik konwertera:.bat lub .exe,
- protokół wywołuje plik konwertera, przekazują mu parametr,
- konwerter przekształca parametr z protokołu do akceptowalnej w ramach konsoli postaci i wywołuje właściwy program wraz ze skonwertowanym parametrem.
Teraz konkretny, działający przykład:
plik.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\htxt]
@="URL: htxt Protocol"
"URL Protocol"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\htxt\DefaultIcon]
@="C:\\Program Files\\Notepad++\\notepad++.exe,1"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\htxt\shell]
@="open"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\htxt\shell\open]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\htxt\shell\open\command]
@="\"C:\\jakis_katalog\\odpal_notepad.bat\" \"%1\""
odpal_notepad.bat
set plik=%1
set plik=%plik:htxt:=%
set plik=%plik:"=%
set plik=%plik:/=\%
set plik=%plik:+=" -n%
"C:\Program Files\Notepad++\notepad++.exe" "%plik%
Plik .bat można potraktować np. programem advancedbattoexeconverter.exe
i pozbyć się irytującego okienka (minimalizowanie chyba coś nie bardzo działało) przy każdym uruchomieniu.
Nie pytaj mnie, co konkretnie ten .bat robi, bo wiedziałam to kilka lat temu, jak go pisałam. Ale w ogólności rzecz jest wykonalna, jak już wiesz, że da się to zrobić i wiesz z grubsza jak.