私はこのスクリプトを作成しました。私の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");
*/
ようこそスタックオーバーフロー!これは理論的に質問に答えるかもしれませんが、答えの本質的な部分をここに含め、参照のためのリンクを提供することが望ましいです(// meta.stackoverflow.com/q/8259)。 – Takarii