2016-07-05 6 views
0

Я построил этот скрипт, который я разделяю с вами здесь, который отлично работал на моем компьютере под управлением Windows 7, чтобы отправить tel: -link на веб-странице с моим телефоном Yealink VOIP. С помощью «reg-file», который вы видите в комментарии, я активировал ссылку на мой tel-link моего скрипта. Но теперь в Windows 10 я не могу заставить его работать! Может ли кто-нибудь помочь мне, как я могу «связать» ссылку «tel» в браузере с моим сценарием снова в Windows 10?зарегистрировать пользовательское приложение tel/callto в Windows 10

/* 
test usage: cscript Z:\tel_link_open\tel.js [phone number] 

create register_me.reg with: 
REGEDIT4 

[HKEY_CLASSES_ROOT\tel] 
@="URL:knoop.frl Custom Telephone Protocol for VoIP phone" 
"URL Protocol"="" 

[HKEY_CLASSES_ROOT\tel\shell] 

[HKEY_CLASSES_ROOT\tel\shell\open] 

[HKEY_CLASSES_ROOT\tel\shell\open\command] 
@="cscript \"Z:\\tel_link_open\\tel.js\" -c \"\\%1\"" 

*/ 

var call_number = WScript.Arguments(0); 
call_number = call_number.replace(/\|.+/g,''); 
//         spatie -. 
call_number = call_number.replace(/(\\tel:|%20|\(|\)|[a-z:\\ -]+)/g,''); 
//         +  31  ( 0 ) 
call_number = call_number.replace(/(\+|%2b)([0-9]+)(\(|%28)0(\)|%29)/ig,'00$2'); 
call_number = call_number.replace(/^0031/ig,'0'); 

WScript.Echo("\n\nGoing to dail: " + call_number + "\n\n"); 

//WScript.Sleep(50000000); 

var outgoing_uri = "31"+"513"+"[number]"+"[internal extension]"; 
var login_name = "XXX"; 
var login_pass = "yyy"; 
var get_url  = "http://192.168.xx.yy/servlet?number=" + call_number + "&outgoing_uri=" + outgoing_uri; 

// Load the WinHttpRequest object. 
var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1"); 

// HttpRequest SetCredentials flags 
HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0; 

// Specify the target resource. 
WinHttpReq.open("GET", 
           get_url, 
           false); 

if (login_name.length) { // Set credentials for server. 
    WinHttpReq.SetCredentials(login_name, 
                 login_pass, 
                 HTTPREQUEST_SETCREDENTIALS_FOR_SERVER); 
} 

// It might also be necessary to supply credentials 
// to the proxy if you connect to the Internet 
// through a proxy that requires authentication. 

// Send a request to the server and wait for 
// a response. 
WinHttpReq.send(); 

// Display the results of the request. 
WScript.Echo("Result status: " + WinHttpReq.Status + " " + WinHttpReq.StatusText + "\n"); 
WScript.Echo(WinHttpReq.GetAllResponseHeaders()); 

/* To save a binary file use this code instead of previous line 
BinStream = new ActiveXObject("ADODB.Stream"); 
BinStream.Type = 1; 
BinStream.Open(); 
BinStream.Write(WinHttpReq.ResponseBody); 
BinStream.SaveToFile("out.bin"); 
*/ 

ответ

0

Я думаю, что вы можете найти решение в MSDN Microsoft:

* Регистрация приложения Работы с клиентами URI схемы Чтобы зарегистрировать приложение для обработки конкретной схемы URI, добавить новый ключ, наряду с соответствующие подразделы и значения, к HKEY_CLASSES_ROOT. Корневой ключ должен соответствовать схеме URI, которая добавляется. Например, чтобы добавить схему, добавьте ключ [Протокол Name] в HKEY_CLASSES_ROOT, следующим образом:

HKEY_CLASSES_ROOT
[Имя протокола]
URL Protocol = ""

В соответствии с этим новым ключом, по URL Значение строки протокола указывает, что этот ключ объявляет пользовательский подключаемый обработчик протокола. Без этого ключа приложение обработчика не запускается. Значение должно быть пустой строкой.
...
Когда пользователь нажимает на ссылку, содержащую вашу настраиваемую схему URI, Windows Internet Explorer запускает подключаемый обработчик протокола, зарегистрированный для этой схемы URI. Если указанная открытая команда, указанная в реестре содержит параметр% 1, Internet Explorer передает URI для зарегистрированного сменного применения обработчика протокола. *

Более подробную информацию см под

Registering an Application to a URI Scheme

Это работает tel-URI, но callto-URI где-то зарегистрирован Skype. Вы должны искать в реестре его и добавлять там свое приложение.

+0

Добро пожаловать в переполнение стека! Хотя это теоретически может ответить на вопрос, [было бы желательно] (// meta.stackoverflow.com/q/8259) включить сюда основные части ответа и предоставить ссылку для справки. – Takarii