Я бачив:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Як називається той перший розділ, де ви бачите http
подібне?
Чи можу я зареєструвати свою власну?
Я бачив:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Як називається той перший розділ, де ви бачите http
подібне?
Чи можу я зареєструвати свою власну?
Відповіді:
Частина з HTTP://
, FTP://
і так далі називається URI Схема
Ви можете зареєструвати свою власну через реєстр.
HKEY_CLASSES_ROOT/
your-protocol-name/
(Default) "URL:your-protocol-name Protocol"
URL Protocol ""
shell/
open/
command/
(Default) PathToExecutable
Джерела: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml , http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
(Default)
тут означає порожній рядок. Не сприймайте це буквально.
Відкрийте блокнот і вставте в нього код нижче. Змініть "YourApp" у назві програми. Збережіть його у YourApp.reg та виконайте його, натиснувши на нього в провіднику. Це воно! Ура! Ервін Хаантіс
REGEDIT4
[HKEY_CLASSES_ROOT\YourApp]
@="URL:YourApp Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\YourApp\DefaultIcon]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\""
[HKEY_CLASSES_ROOT\YourApp\shell]
[HKEY_CLASSES_ROOT\YourApp\shell\open]
[HKEY_CLASSES_ROOT\YourApp\shell\open\command]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\" \"%1\" \"%2\" \"%3\" \"%4\" \"%5\" \"%6\" \"%7\" \"%8\" \"%9\""
Це різниться для кожного браузера, в IE і Windows потрібно створити те, що вони називають плагінним обробником протоколу.
Основні етапи:
Докладніше про сторону Windows див. У розділі Про асинхронні підключаються протоколи на MSDN . Також є зразок у вікні SDK.
Швидкий google також показав цю статтю про codeproject: http://www.codeproject.com/KB/IP/DataProtocol.aspx .
Нарешті, як хлопець із безпеки, я маю зазначити, що цей код потрібно посилити. Це великий ризик, оскільки зробити це надійно, ви не можете зробити це в керованому коді, і це потрібно робити на C ++ (я думаю, ви могли б використовувати VB6). Вам слід подумати, чи дійсно вам це потрібно зробити, і якщо це зробити, ретельно спроектуйте його та надійно зашифруйте. Зловмисник може легко контролювати вміст, який передається вам, просто включивши посилання на сторінку. Наприклад, якщо у вас простий переповнення буфера, ніхто краще не зробить цього:<a href="custom:foooo{insert long string for buffer overflow here}"> Click me for free porn</a>
Настійно розглядайте можливість використання strsafe та нових захищених методів CRT, включених до компіляторів VC8 та вище. Дивіться http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspx, якщо ви не знаєте, про що я говорю.
Ось список зареєстрованих схем URI . Кожен має RFC - документ, що його визначає, що майже є стандартом. RFC повідомляє розробникам нових додатків (таких як браузери, ftp-клієнти тощо), що їм потрібно для підтримки. Якщо вам потрібен новий базовий протокол, ви можете використовувати незареєстрований. Інші відповіді розповідають, як. Майте на увазі, що ви можете робити багато речей із існуючими протоколами, отримуючи таким чином їхні реалізації.
У більшості продуктів Microsoft (Internet Explorer, Office, діалогове вікно «відкритий файл» тощо) ви можете зареєструвати програму, яку потрібно запустити, коли відкриється URI з відповідним префіксом. Це частина більш поширеного пояснення - як реалізувати власний протокол.
Це називається протокол. Єдине, що заважає вам скласти власний протокол - це ви повинні:
Windows робить номер 1 дуже просто, у багатьох випадках це все, що вам потрібно. Viz:
Перший розділ називається протоколом, і так, ви можете зареєструвати свій власний. У Windows (де я припускаю, що ви робите це з огляду на тег C # - вибачте шанувальників Mono), це робиться через реєстр .
Протокол?
Я виявив це, це, здається, локальне налаштування для комп'ютера ...
Вам не потрібно робити жодну реєстрацію як таку. Я бачив, як багато програм, як-от emule, створюють власний специфікатор протоколу (саме так я думаю, це називається). Після цього вам потрібно просто встановити деякі значення в реєстрі щодо того, яка програма обробляє цей протокол. Я не впевнений, чи є офіційний реєстр специфікаторів протоколу. Насправді не дуже можна зупинити вас на створенні власного специфікатора протоколу для вашої власної програми, якщо ви хочете, щоб люди відкривали ваш додаток із свого браузера.