NEWS
Как организовать управление компьютером
-
Есть задача запускать приложения локально или на удаленном компе, возможно ли организовать такое?
- эмуляцию кнопок осуществить (например глобальные горячие клавиши)
-
Многообещающий пакет https://github.com/octalmage/robotjs
Напиши, что получилось
Вот для windows https://github.com/octalmage/robotjs/issues/2
-
Многообещающий пакет https://github.com/octalmage/robotjs
Напиши, что получилось
Вот для windows https://github.com/octalmage/robotjs/issues/2 `
Это только мышь и клава, а как например батник запустить из под iobroker? -
> а как например батник запустить из под iobroker?
var spawn = require('child_process').spawn; function startBat(filename) { var ls = spawn('cmd.exe', ['/c', filename]); ls.stdout.on('data', function (data) { log('stdout: ' + data); }); ls.stderr.on('data', function (data) { log('stderr: ' + data); }); ls.on('exit', function (code) { log('child process exited with code ' + code); }); } startBat('c:/myBatchFile.bat');
или просто так, если не нужно знать, что там батник говорит:
require('child_process').spawn('cmd.exe', ['/c', 'c:/myBatchFile.bat']);
-
Многообещающий пакет https://github.com/octalmage/robotjs `
Не могу установить, выдает ошибкуc:\iobroker\node_modules\robotjs>node "C:\Program Files\nodejs\node_modules\npm\ bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild gyp ERR! configure error gyp ERR! stack Error: Can't find Python executable "python", you can set the PYT HON env variable. gyp ERR! stack at failNoPython (C:\Program Files\nodejs\node_modules\npm\nod e_modules\node-gyp\lib\configure.js:103:14) gyp ERR! stack at C:\Program Files\nodejs\node_modules\npm\node_modules\node -gyp\lib\configure.js:64:11 gyp ERR! stack at Object.oncomplete (evalmachine.<anonymous>:108:15) gyp ERR! System Windows_NT 6.1.7601 gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modu les\\node-gyp\\bin\\node-gyp.js" "rebuild" gyp ERR! cwd c:\iobroker\node_modules\robotjs gyp ERR! node -v v0.10.35 gyp ERR! node-gyp -v v1.0.1 gyp ERR! not ok npm ERR! robotjs@0.2.1 install: `node-gyp rebuild` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the robotjs@0.2.1 install script. npm ERR! This is most likely a problem with the robotjs package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node-gyp rebuild npm ERR! You can get their info via: npm ERR! npm owner ls robotjs npm ERR! There is likely additional logging output above. npm ERR! System Windows_NT 6.1.7601 npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod ejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "robotjs" npm ERR! cwd c:\iobroker npm ERR! node -v v0.10.35 npm ERR! npm -v 1.4.28 npm ERR! code ELIFECYCLE npm ERR! not ok code 0</anonymous>
-
Ну тут немного сложнее, чем с другими пакетами:
Нужно установить Python (2.7), VS 2013 express.
тогда должно заработать.
Здесь написано, что надо сделать:
-
Нужно установить Python (2.7), VS 2013 express. `
То есть он только под окна получается -
Нет. На линксе (debian) он сам собирается. нужно только до этого вызвать:
sudo apt-get update sudo apt-get install build-essential
-
или просто так, если не нужно знать, что там батник говорит:
require('child_process').spawn('cmd.exe', ['/c', 'c:/myBatchFile.bat']); ```` `
Не получается запустить файлик таким способом. Какие еще варианты есть?
По первому варианту получилось. Единственный момент от какого имени запускается cmd?
-
Если запускаю через radmin батник то удаленный комп отключается, если через iobroker то пишет что отказано в доступе.
! javascript-0 2015-08-22 19:29:10 info script.js.Scenes: child process exited with code 5
! javascript-0 2015-08-22 19:29:10 info
! javascript-0 2015-08-22 19:29:10 info script.js.Scenes: stderr: 192.168.1.10: �⪠���� � ����㯥.(5)
! javascript-0 2015-08-22 19:29:10 info
! javascript-0 2015-08-22 19:29:10 info script.js.Scenes: stdout: shutdown /s /t 00 /m \192.168.1.10
! javascript-0 2015-08-22 19:29:10 info C:\Windows\system32>
! javascript-0 2015-08-22 19:29:10 info script.js.Scenes: stdout: -
Запускаю батник скриптом:
require('child_process').spawn('cmd.exe', ['', 'c:/compoff.bat']); var spawn = require('child_process').spawn; function startBat(filename) { var ls = spawn('cmd.exe', ['/c', filename]); ls.stdout.on('data', function (data) { log('stdout: ' + data); }); ls.stderr.on('data', function (data) { log('stderr: ' + data); }); ls.on('exit', function (code) { log('child process exited with code ' + code); }); } startBat('c:/compoff.bat');
Содержимое батника:
net use \\192.168.1.10 /user:instalator shutdown /s /t 3600 /f /m \\192.168.1.10 net use /delete \\192.168.1.10
Вот что выдает в лог:
! javascript.0 2015-11-05 21:39:54 info javascript.0 script.js.Scenes: child process exited with code 0
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout:
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout: \192.168.1.10 �ᯥ譮 㤠���.
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout: use /delete \192.168.1.10
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout: net
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout: C:\Windows\system32>
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout:
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stderr: 192.168.1.10: �⪠���� � ����㯥.(5)
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout:
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout: /s /t 3600 /f /m \192.168.1.10
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout: shutdown
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout: C:\Windows\system32>
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout:
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout: ������� �믮����� �ᯥ譮.
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout:
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout: use \192.168.1.10 /user:instalator
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout: net
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout: C:\Windows\system32>
! javascript.0 2015-11-05 21:39:53 info javascript.0 script.js.Scenes: stdout:
Я так понимаю он рвет команды? -
Он рвёт вывод. А команды нормальные
Тебе отказано в доступе
shutdown (5) access is denied
-
Он рвёт вывод. А команды нормальные
Тебе отказано в доступе
shutdown (5) access is denied ```` `
Как то читал эту кодировку не помню как), в какой он отдает?
Вот не пойму почему отказано, в безопасности добавил группу Все, если руками запускаю батник то все отрабатывает, а чз брокера нехотит.
-
Эту проблему можно решить так:
require('child_process').spawn('chcp 866 | cmd.exe', ['', 'c:/compoff.bat']); var spawn = require('child_process').spawn; function startBat(filename) { var ls = spawn('cmd.exe', ['/c', filename]); ls.stdout.on('data', function (data) { log('stdout: ' + data); }); ls.stderr.on('data', function (data) { log('stderr: ' + data); }); ls.on('exit', function (code) { log('child process exited with code ' + code); }); } startBat('c:/compoff.bat');
Кодировка либо 866 либо 65001. Надо просто попробовать
-