2017-02-16 14 views
0

JavaScriptの人から遠いと言うことから始めます。私は、HTMLとCSSでより多くのことを行い、JQueryコードをフロントエンドでしたいと思うようにするためのいくつかのコードを調整するのと同じように、JavaScriptで「手を加える」。NW.jsでWindowsファイル/イベントを実行する(ノードWebkit)

私は完了しようとしている課題に少し問題があり、初めてNW.js(Node Webkit)を使用するようになりました。私はクリックで発生するには、以下の4つのイベントを可能にし、4ボタン・ユーザ・インタフェースを作成しようとしています

1. Load a website in a new window 
2. Open windows explorer to a specific directory and allow the user to browse 
3. Extend Windows Display on a Dual Monitor Setup 
4. Clone Windows Display on a Dual Monitor Setup 

私はもともとほとんど終わったとHTMLアプリケーションファイルを簡単に私の結果を達成しました - 私は時代遅れだと知っていますが、私のスキルセット内で作業し、必要な作業をかなり容易に達成することができました。問題は、それはCSS3とそれを使用して開いているWebサイトを許可しないだろう、そしてそれは全体としてそれの外観をかなり台無しにした。 Sooo私は何か新しいものが必要でした。

私はNW.jsを見つけ出し、それを離れ始めました。私のパッケージがロードされている、私の "アプリ"は今すぐ起動可能ですが、古いスクリプトが動作していないと私は正方形に戻っています。 NW.jsを使用してWindowsで実行可能ファイルを起動する方法がわかりません。以下は

(私はそれが動作しないことを実現する前に取得するためにまだ持っていたマイナスのファイルエクスプローラ、)HTMLアプリケーションファイルで働いていたコードです:

<!DOCTYPE html> 
    <html> 
     <head> 
       <title>My HTML App</title> 
       <link rel="stylesheet" href="style.css"> 
       <script type="text/javascript" language="javascript"> 
        function RunPad() { 
        WshShell = new ActiveXObject("WScript.Shell"); 
        WshShell.Run("c:/windows/system32/notepad.exe", 1, false); 
        } 
        function RunExtend() { 
        WshShell = new ActiveXObject("WScript.Shell"); 
        WshShell.Run("c:/windows/System32/DisplaySwitch.exe /extend", 1, false); 
        } 
        function RunClone() { 
        WshShell = new ActiveXObject("WScript.Shell"); 
        WshShell.Run("c:/windows/System32/DisplaySwitch.exe /clone", 1, false); 
        } 
        function RunWebsite() { 
        WshShell = new ActiveXObject("WScript.Shell"); 
        WshShell.Run("c:/Program Files/Internet Explorer/iexplore.exe", 1, false); 
        } 
       </script> 
       </head> 
         <body> 
          <div class="container"> 
            <div class="col-1-2"><img src="website.jpg" onclick="RunWebsite();"></div> 
            <div class="col-1-2"><img src="resources.jpg"></a></div> 
            <div class="col-1-2"><img src="single_screen.jpg" onclick="RunExtend();"></div> 
            <div class="col-1-2"><img src="dual_screen.jpg" onclick="RunClone();"></div></div> 
          </div> 
        </body> 
    </html> 

私は本当ににこだわっこれはNW.jsでこれを完了するためにどのルートを取るべきか分かりません

助けていただければ幸いです。

答えて

0

ActiveXObjectはIE/Edgeのみのため、Chromium(NWで使用)では動作しません。あなたがが何ができるか

function RunExtProgram(ProgName){ 

require('child_process').exec(ProgName,function(error,stdout,stderr){if(error!==null){alert('Unable to launch process:<br><br>'+stderr+'<br><br>'+ProgName);}}); 

} 

使い方...あなたのActiveXObjectを機能ごとに個別のVBSスクリプトを作成して呼び出す/このように(NWでサポートされている)のNode.jsで必要に応じてそれらを実行されます例:

RunExtProgram('C:/test/abc.vbs'); 
関連する問題