2016-07-05 9 views
0

私はこのスクリプトを作成しました。私のYealink VOIP電話でウェブページにtel:-linkを送るためにWindows 7のコンピュータで完全に機能しました。 'reg-file'を使うと、コメントの中で私のスクリプトのtel-link uasageを有効にしました。しかし、今ではWindows 10ではこれ以上動作させることはできません!誰も私がどのようにブラウザの "telリンク"をWindows 10のスクリプトに "リンク"することができますか?Windowsのカスタムtel/calltoアプリを登録します

*特定のURIスキームを処理するアプリケーションを登録するには、カスタムURIスキーム の取り扱いアプリケーションの登録には、一緒に、新しいキーを追加します。

/* 
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の解決策を見つけることができると思います適切なサブキーと値をHKEY_CLASSES_ROOTに設定します。ルートキーは、追加されているURIスキームと一致する必要があります。

HKEY_CLASSES_ROOT
[プロトコル名]
URLプロトコル= ""

をこの新しいキー、URLの下に:たとえば、次のように、[プロトコル名] HKEY_CLASSES_ROOTにキーを追加し、スキームを追加しますプロトコル文字列値は、このキーがカスタムプラグ可能なプロトコルハンドラを宣言していることを示します。このキーがなければ、ハンドラーアプリケーションは起動しません。値は空の文字列でなければなりません。
...
ユーザーがカスタム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

関連する問題