Tôi đã từng thấy:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Phần đầu tiên mà bạn nhìn thấy http
và tương tự được gọi là gì?
Tôi có thể tự đăng ký không?
Tôi đã từng thấy:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Phần đầu tiên mà bạn nhìn thấy http
và tương tự được gọi là gì?
Tôi có thể tự đăng ký không?
Câu trả lời:
Phần với HTTP://
, FTP://
, vv được gọi là URI Schemes
Bạn có thể đăng ký của riêng bạn thông qua đăng ký.
HKEY_CLASSES_ROOT/
your-protocol-name/
(Default) "URL:your-protocol-name Protocol"
URL Protocol ""
shell/
open/
command/
(Default) PathToExecutable
Nguồn: https://www.iana.org/assignments/uri-scheme/uri-scheme.xhtml , http://msdn.microsoft.com/en-us/l Library / aa767914 (v = vs85) .aspx
(Default)
ở đây có nghĩa là chuỗi rỗng. Đừng hiểu theo nghĩa đen.
Mở notepad và dán mã bên dưới vào nó. Thay đổi "YourApp" thành tên ứng dụng của bạn. Lưu nó vào YourApp.reg và thực hiện nó bằng cách nhấp vào nó trong explorer. Đó là nó! Chúc mừng! 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\""
Điều này là khác nhau đối với mỗi trình duyệt, trong IE và windows, bạn cần tạo cái mà chúng gọi là trình xử lý giao thức có thể cắm được.
Các bước cơ bản như sau:
Xem Giới thiệu về Giao thức có thể cắm không đồng bộ trên MSDN để biết thêm chi tiết về phía cửa sổ. Ngoài ra còn có một mẫu trong SDK Windows.
Một google nhanh chóng cũng cho thấy bài viết này về codeproject: http://www.codeproject.com/KB/IP/DataProtocol.aspx .
Cuối cùng, là một người bảo mật, tôi phải chỉ ra rằng mã này cần phải được chiến đấu cứng. Nó có nguy cơ cao vì để làm điều đó một cách đáng tin cậy, bạn không thể làm điều đó trong mã được quản lý và phải làm điều đó trong C ++ (Tôi cho rằng bạn có thể sử dụng VB6). Bạn nên xem xét liệu bạn có thực sự cần phải làm điều này không và nếu có, hãy thiết kế cẩn thận và mã hóa nó một cách an toàn. Kẻ tấn công có thể dễ dàng kiểm soát nội dung được truyền cho bạn bằng cách chỉ cần bao gồm một liên kết trên một trang. Ví dụ: nếu bạn có một lỗi tràn bộ đệm đơn giản thì không ai làm tốt hơn điều này:<a href="custom:foooo{insert long string for buffer overflow here}"> Click me for free porn</a>
Cân nhắc mạnh mẽ sử dụng strsafe và các phương pháp CRT an toàn mới có trong trình biên dịch VC8 trở lên. Xem http://bloss.msdn.com/michael_howard/archive/2006/02/27/540123.aspx nếu bạn không biết tôi đang nói về cái gì.
Đây là danh sách các lược đồ URI đã đăng ký . Mỗi người có một RFC - một tài liệu xác định nó, gần như là một tiêu chuẩn. RFC nói với các nhà phát triển ứng dụng mới (như trình duyệt, máy khách ftp, v.v.) những gì họ cần hỗ trợ. Nếu bạn cần một giao thức cấp cơ sở mới, bạn có thể sử dụng giao thức chưa đăng ký. Các câu trả lời khác cho bạn biết làm thế nào. Xin lưu ý rằng bạn có thể thực hiện nhiều thứ với các giao thức hiện có, do đó có được các triển khai hiện có của chúng.
Đối với hầu hết các sản phẩm của Microsoft (Internet Explorer, Office, hộp thoại "tệp mở", v.v.), bạn có thể đăng ký một ứng dụng để chạy khi URI với tiền tố thích hợp được mở. Đây là một phần của lời giải thích phổ biến hơn - cách thực hiện giao thức của riêng bạn.
Nó được gọi là giao thức. Điều duy nhất ngăn bạn thực hiện giao thức của riêng bạn là bạn phải:
Windows làm cho số 1 thực sự dễ dàng, trong nhiều trường hợp đây là tất cả những gì bạn thực sự cần. Viz:
Phần đầu tiên được gọi là một giao thức và có, bạn có thể đăng ký của riêng bạn. Trên Windows (nơi tôi cho rằng bạn đang làm điều này với thẻ C # - xin lỗi người hâm mộ Mono), nó được thực hiện thông qua sổ đăng ký .
Một giao thức?
Tôi thấy điều này, nó dường như là một thiết lập cục bộ cho máy tính ...
Bạn không thực sự phải làm bất kỳ đăng ký như vậy. Tôi đã thấy nhiều chương trình, như emule, tạo ra giao thức cụ thể của riêng họ (đó là những gì tôi nghĩ nó được gọi là). Sau đó, về cơ bản, bạn chỉ cần đặt một số giá trị trong sổ đăng ký là chương trình nào xử lý giao thức đó. Tôi không chắc chắn nếu có bất kỳ đăng ký chính thức của các nhà đầu cơ giao thức. Thực sự không có gì nhiều để ngăn bạn tạo công cụ xác định giao thức cho ứng dụng của riêng bạn nếu bạn muốn mọi người mở ứng dụng của bạn từ trình duyệt của họ.