当我点击浏览器中的文本时,有没有办法执行 bash 命令?
网页位于计算机 A 上,浏览器位于计算机 B 上:我想在计算机 B 上执行代码,例如hsetroot
单击图像时更改壁纸。
答案1
答案2
我使用 NodeJS 服务器解决了这个问题。 (不是干净/最终的代码,但它可以工作)
计算机A:(服务器)
function change_wallpaper(image){
var objReq = new XMLHttpRequest();
objReq.open("GET", "http://localhost:8888" + "?image=" + image, false);
objReq.send(null);
}
<img src="./img/1.jpeg" onclick="change_wallpaper(this.src);" />
<img src="./img/2.jpeg" onclick="change_wallpaper(this.src);" />
计算机 B :(客户端)server.js
执行名为 ans 的文件nodejs server.js
var http = require("http");
var sys = require('sys')
var exec = require('child_process').exec;
var url = require("url");
function onRequest(request, response) {
var params = url.parse(request.url,true).query;
function puts(error, stdout, stderr) {sys.puts(stdout)}
exec("/usr/bin/feh --bg-center " + params.image, puts);
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Wallpaper');
}
http.createServer(onRequest).listen(8888);
答案3
一般情况下你不能这样做,但是在一个定义的环境中,你可以控制客户端机器B,你可以建议机器B运行一个setroot服务,你可以简单地用nodejs或golang自己编写并与之对话当您收到事件时的服务。但无论如何,如果你不在机器 B 上安装一些额外的服务,你就没有任何机会(或者至少你永远不应该有机会)。
答案4
是的..有可能中性。
您可以使用Neutralino.os.runCommand()
。但在你的场景中可以使用Neutralino云模式。