كيف يمكنني إنشاء بروتوكول URL الخاص بي؟ (على سبيل المثال، لذلك: // ...) [مغلق

StackOverflow https://stackoverflow.com/questions/389204

سؤال

لقد رأيت:

  • 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.

نصائح أخرى

افتح المفكرة ولصق التعليمات البرمجية أدناه. تغيير "YourApp" إلى اسم التطبيق الخاص بك. احفظه على Yourapp.reg وتنفيذه من خلال النقر عليه في Explorer. هذا هو! هتافات! erwin haantjes.

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، تحتاج إلى إنشاء ما يسميه معالج بروتوكول قابل للتوصيل.

الخطوات الأساسية هي كما يلي:

  1. تنفيذ واجهة IINTERNETPROTOC.
  2. تنفيذ واجهة IINTERNETPROTICOLROT.
  3. تنفيذ واجهة iClassFactory.
  4. اختياري. تنفيذ واجهة iinternetprotocolinfo. يتم توفير الدعم لبروتوكول HTTP بواسطة معالج المعاملات.
  5. إذا تم تطبيق iinternetprotocolinfo، فقم بتوفير الدعم ل parse_security_url و parse_security_domain لذلك يمكن لمدير منطقة أمان URL التعامل مع الأمان بشكل صحيح. اكتب الرمز لمعالج البروتوكول الخاص بك.
  6. تقديم الدعم ل bindf_no_ui و bindf_silentoperation.
  7. إضافة مفتاح فرعي لمعالج بروتوكولك في السجل ضمن HKEY_CLASSES_ROOT PROTOCOCOLS HANDLER.
  8. قم بإنشاء قيمة سلسلة، CLSID، ضمن المفتاح الفرعي وتعيين السلسلة إلى CLSID من معالج البروتوكول الخاص بك.

يرى حول البروتوكولات القابلة للتوصيل غير المتزامن على MSDN لمزيد من التفاصيل على جانب Windows. هناك أيضا عينة في Windows 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 بادئة مناسبة. هذا جزء من أكثر شيوعا تفسير - كيفية تنفيذ بروتوكولك الخاص.

ل Mozilla The Explanation هو هنا, ، جافا - هنا.

يطلق عليه البروتوكول. الشيء الوحيد الذي يمنعك من جعل بروتوكولك الخاص هو يجب عليك:

  1. اكتب متصفح أو وكيل مستخدم لبعض أنواع يفهم هذا البروتوكول، في شكل عنوان URL الخاص به وفي تنسيق البيانات الفعلي
  2. اكتب خادم يفهم هذا البروتوكول
  3. ويفضل أن يكون لديك مواصفات للبروتوكول بحيث يمكن للمستعرض والخادم الاستمرار في العمل معا.

ويندوز يجعل # 1 سهل حقا، في كثير من الحالات، كل ما تحتاجه فعلا. بمعنى:

تسجيل تطبيق إلى بروتوكول URL

يسمى القسم الأول بروتوكول ونعم يمكنك تسجيل خاص بك. على Windows (حيث أفترض أنك تقوم بذلك بالنظر إلى علامة C # - عذرا Mono Mono)، فهو تم ذلك عبر التسجيل.

بروتوكول؟

لقد وجدت هذا، يبدو أنه إعداد محلي لجهاز كمبيوتر ...

http://kb.mozillazine.org/register_protocol.

أنت لا تضطر حقا إلى القيام بأي تسجيل على هذا النحو. لقد رأيت العديد من البرامج، مثل Emule، إنشاء بروتوكول خاص بها (هذا ما أعتقد أنه يطلق عليه). بعد ذلك، عليك فقط تعيين بعض القيم في السجل حول البرنامج الذي يتعامل مع هذا البروتوكول. لست متأكدا مما إذا كان هناك أي سجل رسمي لتحديد البروتوكول. لا يوجد الكثير مما يجب إيقافك من إنشاء محدد بروتوكولك الخاص لتطبيقك الخاص إذا كنت تريد فتح تطبيقك من متصفحك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top