繁体   English   中英

使用NW.js(Node Webkit)执行Windows文件/事件

[英]Executing Windows files/events with NW.js (Node Webkit)

首先,我要说说我与JavaScript专家相距甚远。 我更多地使用HTML和CSS,并使用JavaScript进行“学习”,如调整一些代码以使JQuery代码在前端执行我想要的那样。

我要完成的任务有点问题,这使我第一次使用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应用程序文件轻松实现我的结果-我知道,已经过时了,但是它使我能够在自己的技能范围内工作并相当轻松地完成所需的任务。 问题wa,它不允许CSS3,并且打开的网站使用了CSS3,这从很大程度上破坏了它的整体外观。 所以我需要一些新东西。

我偶然发现了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完成此操作

任何帮助,将不胜感激。

ActiveXObject仅适用于IE / Edge,因此无法在Chromium(由NW使用)下工作。

但是,您可以做的是为每个ActiveXObject函数创建单独的Vbs脚本,并以这种方式根据需要使用node.js(由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);}});

}

用法示例:

RunExtProgram('C:/test/abc.vbs');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM