2016-07-05 107 views
0

我构建了我与您共享的这个脚本,这些脚本在我的Windows 7计算机上完美工作,以便通过我的Yealink VOIP电话在网页中获取电话: - 链接。通过在注释中看到的'reg-file',我激活了我的脚本的tel-link uasage。但是现在在Windows 10中,我无法让它继续工作!任何人都可以帮助我如何在Windows 10中再次将浏览器中的“电话链接”链接到我的脚本?在Windows 10中注册定制电话/ callto应用程序

/* 
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微软的解决方案:

*注册应用程序处理自定义URI方案 要注册的应用程序来处理特定的URI方案,添加一个新的关键,随着适当的子项和值,以HKEY_CLASSES_ROOT。根密钥必须与正在添加的URI方案相匹配。例如,添加一个方案,添加[协议名称]键HKEY_CLASSES_ROOT,如下所示:

HKEY_CLASSES_ROOT
[协议名称]
URL协议= “”

在这个新的密钥,网址协议字符串值表示该密钥声明一个自定义可插入协议处理程序。没有这个键,处理程序应用程序将不会启动。该值应该是一个空字符串。
...
当用户单击包含自定义URI方案的链接时,Windows Internet Explorer将启动为该URI方案注册的可插入协议处理程序。如果在注册表中指定的指定开放式命令包含%1的参数,IE浏览器传递的URI注册的可插入协议处理程序的应用。*

进一步的细节

Registering an Application to a URI Scheme

下看这是工作tel-URI,但callto-URI是由Skype注册的地方。你必须在注册表中搜索它并在那里添加你的应用程序。

+0

欢迎来到Stack Overflow!虽然这可能会在理论上回答这个问题,[这将是更可取的](// meta.stackoverflow.com/q/8259)在这里包括答案的基本部分,并提供参考链接。 – Takarii

相关问题