Windows'ta özel bir URL protokolünü nasıl kaydederim?


Yanıtlar:


65
  1. StartO zaman gidin Findyazın regedit-> açılmalıRegistry editor

  2. Click Right Mouseon HKEY_CLASSES_ROOTardından New->Key

görüntü açıklamasını buraya girin

  1. Key size URL'ler (benim durumumda öyle olacak çağrılacak istediğiniz tarafından küçük ad vermek testus://sdfsdfsdf) daha sonra tıklayın Right Mouseüzerinde testus> ardından - New-> String Valueve eklemek URL protocoldeğersiz.

görüntü açıklamasını buraya girin

  1. Ardından, protokol ( Right Mouse New-> Key) ile yaptığınız gibi daha fazla giriş ekleyin ve testus-> shell-> open-> gibi bir hiyerarşi oluşturun commandve başlatmak istediğiniz yolun iç commanddeğişikliği , exe'nize parametreleri iletmek istiyorsanız, yolu exe'ye kaydırın içinde ve ekleme gibi görünüme:(Default).exe"""%1""c:\testing\test.exe" "%1"

görüntü açıklamasını buraya girin

  1. Test için bu gitmek çalışırsa Internet Explorer(değil Chromeya Firefox) ve girmek testus:have_you_seen_this_manateş senin gereken bu .exeve args içine pass - (Evet diyelim bunu yapmak istediğini bazı istemleri vermek) testus://have_you_seen_this_man.

Test edilecek örnek konsol uygulaması:

using System;

namespace Testing
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args!= null && args.Length > 0)
            Console.WriteLine(args[0]);
            Console.ReadKey();
        }
    }
}

Umarım bu size biraz zaman kazandırır.


3
Vay canına, bu şey çalışıyor. Ve sadece IE'de değil, Chrome'da da!
user1974566

36

Bunun MSDN kapsamında olduğunu düşünüyorum, lütfen bkz. Bir Uygulamayı Bir URL Protokolüne Kaydetme .


5
Oauth tabanlı uygulamayı yazıyordum ve MSDN'de açıklanan prosedür Mozilla Firefox ve Opera (11.6) ile mükemmel çalışıyor
Viktor Latypov

11
Bu, Windows'taki tüm tarayıcılarda çalışır. Bu işletim sistemi düzeyinde bir şey, tarayıcı düzeyinde bir şey değil.
Andrew Dunkman

7
Oy verdim, ancak SO politikasına göre bağlantıdaki ilgili bilgileri eklemek için lütfen yanıtı düzenleyin. Teşekkürler!
dotancohen

Hangi Windows sürümleri bunu destekliyor?
ᆼ ᆺ ᆼ

21

MSDN bağlantısı güzel, ancak oradaki güvenlik bilgileri tam değil. İşleyici kaydı% 1 değil "% 1" içermelidir. Bu bir güvenlik önlemidir, çünkü bazı URL kaynakları özel protokol işleyicinizi çalıştırmadan önce% 20 kodunu hatalı bir şekilde çözer.

PS. Yalnızca URL parametrelerini değil, tüm URL'yi alırsınız. Ancak URL, daha önce bahsedilen% 20-> alan dönüşümünün yanı sıra bazı kötü muameleye tabi olabilir. URL söz dizimi tasarımınızda muhafazakar olmanıza yardımcı olur. Rastgele // atmayın, yoksa bu dosya: // olan karmaşaya girersiniz.


"Dosya: //" ile tam olarak neyi kastediyorsunuz?
Maleev

6
Dosyanın resmi bir eşlemesi yoktur: yerel yollara URL'ler. Yol bir Windows dizinine atıfta bulunduğunda, iki veya üç önde gelen eğik çizginin kullanılması veya ileri ve geri eğik çizgilerin kullanılması konusunda bir fikir birliği bile yoktur.
MSalters

Geç yorum biliyorum. Ancak, protokol işleyicisi olmadan yalnızca URL parametrelerine bir şekilde erişmek de mümkün müdür ?
Danilo Bargen

2
Bu ayrı bir soru gibi geliyor. Lütfen şartlarınızı net bir şekilde belirtin. Protokol işleyicisi, URL'yi alan programdır. "Protokol işleyici olmadan" URL'yi ayrıştıracak ve URL parametrelerine erişecek kimse yoktur.
MSalters
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.