Added wallpaper support on Windows
Bryan Roe committed
Nov 13, 2019 at 14:45 UTC
70d26f1c256edf170c7d4ca9c18914b63f5eaf0e
1 file changed
+45
agents/meshcore.js
+45
@@ -1788,6 +1788,51 @@ function createMeshCore(agent) {
1788
response = 'Available commands: \r\n' + fin + '.';
1789
break;
1790
}
1791
+ case 'wallpaper':
1792
+ if (process.platform != 'win32')
1793
+ {
1794
+ response = 'wallpaper only supported on Windows Platforms'
1795
+ }
1796
+ else
1797
+ {
1798
+ if (args['_'].length != 1)
1799
+ {
1800
+ response = 'Proper usage: wallpaper (GET|TOGGLE)'; // Display usage
1801
+ }
1802
+ else
1803
+ {
1804
+ switch (args['_'][0].toUpperCase())
1805
+ {
1806
+ default:
1807
+ response = 'Proper usage: wallpaper (GET|TOGGLE)'; // Display usage
1808
+ break;
1809
+ case 'GET':
1810
+ case 'TOGGLE':
1811
+ var id = require('user-sessions').getProcessOwnerName(process.pid).tsid == 0 ? 1 : 0;
1812
+ var child = require('child_process').execFile(process.execPath, [process.execPath.split('\\').pop(), '-b64exec', 'dmFyIFNQSV9HRVRERVNLV0FMTFBBUEVSID0gMHgwMDczOwp2YXIgU1BJX1NFVERFU0tXQUxMUEFQRVIgPSAweDAwMTQ7CnZhciBHTSA9IHJlcXVpcmUoJ19HZW5lcmljTWFyc2hhbCcpOwp2YXIgdXNlcjMyID0gR00uQ3JlYXRlTmF0aXZlUHJveHkoJ3VzZXIzMi5kbGwnKTsKdXNlcjMyLkNyZWF0ZU1ldGhvZCgnU3lzdGVtUGFyYW1ldGVyc0luZm9BJyk7CgppZiAocHJvY2Vzcy5hcmd2Lmxlbmd0aCA9PSAzKQp7CiAgICB2YXIgdiA9IEdNLkNyZWF0ZVZhcmlhYmxlKDEwMjQpOwogICAgdXNlcjMyLlN5c3RlbVBhcmFtZXRlcnNJbmZvQShTUElfR0VUREVTS1dBTExQQVBFUiwgdi5fc2l6ZSwgdiwgMCk7CiAgICBjb25zb2xlLmxvZyh2LlN0cmluZyk7CiAgICBwcm9jZXNzLmV4aXQoKTsKfQplbHNlCnsKICAgIHZhciBuYiA9IEdNLkNyZWF0ZVZhcmlhYmxlKHByb2Nlc3MuYXJndlszXSk7CiAgICB1c2VyMzIuU3lzdGVtUGFyYW1ldGVyc0luZm9BKFNQSV9TRVRERVNLV0FMTFBBUEVSLCBuYi5fc2l6ZSwgbmIsIDApOwogICAgcHJvY2Vzcy5leGl0KCk7Cn0='], { type: id });
1813
+ child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
1814
+ child.stderr.on('data', function () { });
1815
+ child.waitExit();
1816
+ var current = child.stdout.str.trim();
1817
+ if(args['_'][0].toUpperCase() == 'GET')
1818
+ {
1819
+ response = current;
1820
+ break;
1821
+ }
1822
+ if (current != '')
1823
+ {
1824
+ require('MeshAgent')._wallpaper = current;
1825
+ }
1826
+ child = require('child_process').execFile(process.execPath, [process.execPath.split('\\').pop(), '-b64exec', 'dmFyIFNQSV9HRVRERVNLV0FMTFBBUEVSID0gMHgwMDczOwp2YXIgU1BJX1NFVERFU0tXQUxMUEFQRVIgPSAweDAwMTQ7CnZhciBHTSA9IHJlcXVpcmUoJ19HZW5lcmljTWFyc2hhbCcpOwp2YXIgdXNlcjMyID0gR00uQ3JlYXRlTmF0aXZlUHJveHkoJ3VzZXIzMi5kbGwnKTsKdXNlcjMyLkNyZWF0ZU1ldGhvZCgnU3lzdGVtUGFyYW1ldGVyc0luZm9BJyk7CgppZiAocHJvY2Vzcy5hcmd2Lmxlbmd0aCA9PSAzKQp7CiAgICB2YXIgdiA9IEdNLkNyZWF0ZVZhcmlhYmxlKDEwMjQpOwogICAgdXNlcjMyLlN5c3RlbVBhcmFtZXRlcnNJbmZvQShTUElfR0VUREVTS1dBTExQQVBFUiwgdi5fc2l6ZSwgdiwgMCk7CiAgICBjb25zb2xlLmxvZyh2LlN0cmluZyk7CiAgICBwcm9jZXNzLmV4aXQoKTsKfQplbHNlCnsKICAgIHZhciBuYiA9IEdNLkNyZWF0ZVZhcmlhYmxlKHByb2Nlc3MuYXJndlszXSk7CiAgICB1c2VyMzIuU3lzdGVtUGFyYW1ldGVyc0luZm9BKFNQSV9TRVRERVNLV0FMTFBBUEVSLCBuYi5fc2l6ZSwgbmIsIDApOwogICAgcHJvY2Vzcy5leGl0KCk7Cn0=', current != '' ? '""' : require('MeshAgent')._wallpaper], { type: id });
1827
+ child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
1828
+ child.stderr.on('data', function () { });
1829
+ child.waitExit();
1830
+ response = 'OK';
1831
+ break;
1832
+ }
1833
+ }
1834
+ }
1835
+ break;
1836
case 'safemode':
1837
if (process.platform != 'win32')
1838
{