Registering an Application to a URL Protocol
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Registering an Application to a URL Protocol Expand / Collapse
Автор
Сообщение
09.12.2006 19:04


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 13.12.2007 18:51
Сообщ.: 3 047, Visits: 33 391
В статье http://msdn.microsoft.com/workshop/networking/pluggable/overview/appendix_a.asp просто и подробно описано, как реализовать сабж.

Допустим, я хочу, чтобы реакция системы на URL вида "myproto:12345" заключалась в запуске приложения и передаче ему "12345" в качестве аргумента. Никаких проблем - в shell/open/command нужно написать что-то типа "<path>MyApp.exe %1%" (см. статью MSDN, если непонятно, о чём это я).

А теперь допустим, что реакция должна быть иной - запуск URL'а следующего вида: "http://<server_address>/view.php?id=12345". Попытка установки shell/open/command в "start http://<server_address>/view.php?id=%1%" ничего не дала - ошибка. Попытался сузить область ошибки - вписал в shell/open/command тупо: "start http://www.yandex.ru". Тоже ошибка. А вот когда вписал следующее:

"C:\Program Files\Internet Explorer\iexplore.exe" http://www.yandex.ru

- всё заработало.

Однако, не хочется вбивать туда явный путь к IE. Непонятно, почему же запуск через start не работает. Т.е. "start http://<server_address>/view.php?id=12345" прекрасно работает в командной строке ОС, но не воспринимается в shell/open/command :(

Есть идеи? похоже, есть какие-то ограничения на содержимое shell/open/command - только вот не могу найти, какие именно.


While (!Life.EOF) { You.Money ++; You.Girls.Add(new Girl(90,60,90)); BeHappy(); }
Сообщ. #908715
10.12.2006 2:26


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 23.04.2007 23:36
Сообщ.: 1 541, Visits: 16 997
че-то типа

cmd /d /q /c for /f "tokens=1* delims=:" %%i in ("%1") do start http://mysite.com/view.php?id=%%j


Сообщ. #908719
10.12.2006 8:00


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 13.12.2007 18:51
Сообщ.: 3 047, Visits: 33 391
Спасибо! однако, если верить Гуглу, нельзя избавиться от мелькания "чёрного окна" (cmd.exe) иначе, чем правкой его LNK-файла или вообще использованием WScript.Shell вкупе с отдельным BAT-файлом :(( а хотелось бы избавиться, не прибегая к созданию/использованию дополнительного файла(ов). Думал, что cmd.exe имеет какие-нить недокументированные ключи (типа /hidden, /silent и т.п.), но не подтвердилось.

М.б. есть ещё варианты?

хотя вряд ли - ведь всё равно надо как-то выделить вторую часть из URL'а, а "в одну строчку" это можно сделать только при помощи команды FOR, а значит - не обойтись и без CMD...


While (!Life.EOF) { You.Money ++; You.Girls.Add(new Girl(90,60,90)); BeHappy(); }
Сообщ. #908720
10.12.2006 19:19


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 23.04.2007 23:36
Сообщ.: 1 541, Visits: 16 997
Ну напиши банальную программку в три строчки на си :)


Сообщ. #908727
11.12.2006 8:52


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 13.12.2007 18:51
Сообщ.: 3 047, Visits: 33 391
Messir (10.12.2006)
Ну напиши банальную программку в три строчки на си :)

Дык это ясно :) я хотел вообще без дополн. файлов обойтись... похоже, придётся обломиться... ну или PHP-скрипт переделать, чтоб сам откусывал вторую половину URL'а.


While (!Life.EOF) { You.Money ++; You.Girls.Add(new Girl(90,60,90)); BeHappy(); }
Сообщ. #908731
11.12.2006 12:00


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 23.04.2007 23:36
Сообщ.: 1 541, Visits: 16 997
Comanche (11.12.2006)
Дык это ясно :) я хотел вообще без дополн. файлов обойтись... похоже, придётся обломиться... ну или PHP-скрипт переделать, чтоб сам откусывал вторую половину URL'а.

Дык а открывать-то чем в случае php-скрипта? start-то - это внутренняя команда cmd, так что ее не поиспользуешь :)


Сообщ. #908749
11.12.2006 22:45


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 13.12.2007 18:51
Сообщ.: 3 047, Visits: 33 391
Я имел в виду следующее:

В shell/open/command пишем: "explorer http://mysite.com/view.php?id=%1%". В итоге php-скрипт получит на вход "неразрезанный" id, равный "myproto:12345" (к примеру). Ну и сам отрежет "12345".


While (!Life.EOF) { You.Money ++; You.Girls.Add(new Girl(90,60,90)); BeHappy(); }
Сообщ. #908774
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 5:04