Fixed bug with long urls for openurl
Bryan Roe committed
Feb 3, 2022 at 15:14 UTC
45517db7dd92e60948c510c4336a10c5f997611d
1 file changed
+36
-23
agents/meshcore.js
+36
-23
@@ -3177,30 +3177,43 @@ function openUserDesktopUrl(url) {
3177
var uid = require('user-sessions').consoleUid();
3178
var user = require('user-sessions').getUsername(uid);
3179
var domain = require('user-sessions').getDomain(uid);
3180
- var taskoptions = { env: { _target: process.env['windir'] + '\\system32\\cmd.exe', _args: '/C START ' + url.split('&').join('^&'), _user: '"' + domain + '\\' + user + '"' } };
3181
- for (var c1e in process.env) {
3182
- taskoptions.env[c1e] = process.env[c1e];
3180
+ var task = { name: 'MeshChatTask', user: user, domain: domain, execPath: process.env['windir'] + '\\system32\\cmd.exe', arguments: ['/C START ' + url.split('&').join('^&')] };
3181
+
3182
+ try
3183
+ {
3184
+ require('win-tasks').addTask(task);
3185
+ require('win-tasks').getTask({ name: 'MeshChatTask' }).run();
3186
+ require('win-tasks').deleteTask('MeshChatTask');
3187
+ return (true);
3188
+ }
3189
+ catch(zz)
3190
+ {
3191
+ var taskoptions = { env: { _target: process.env['windir'] + '\\system32\\cmd.exe', _args: '/C START ' + url.split('&').join('^&'), _user: '"' + domain + '\\' + user + '"' } };
3192
+ for (var c1e in process.env)
3193
+ {
3194
+ taskoptions.env[c1e] = process.env[c1e];
3195
+ }
3196
+ var child = require('child_process').execFile(process.env['windir'] + '\\System32\\WindowsPowerShell\\v1.0\\powershell.exe', ['powershell', '-noprofile', '-nologo', '-command', '-'], taskoptions);
3197
+ child.stderr.on('data', function (c) { });
3198
+ child.stdout.on('data', function (c) { });
3199
+ child.stdin.write('SCHTASKS /CREATE /F /TN MeshChatTask /SC ONCE /ST 00:00 ');
3200
+ if (user) { child.stdin.write('/RU $env:_user '); }
3201
+ child.stdin.write('/TR "$env:_target $env:_args"\r\n');
3202
+ child.stdin.write('$ts = New-Object -ComObject Schedule.service\r\n');
3203
+ child.stdin.write('$ts.connect()\r\n');
3204
+ child.stdin.write('$tsfolder = $ts.getfolder("\\")\r\n');
3205
+ child.stdin.write('$task = $tsfolder.GetTask("MeshChatTask")\r\n');
3206
+ child.stdin.write('$taskdef = $task.Definition\r\n');
3207
+ child.stdin.write('$taskdef.Settings.StopIfGoingOnBatteries = $false\r\n');
3208
+ child.stdin.write('$taskdef.Settings.DisallowStartIfOnBatteries = $false\r\n');
3209
+ child.stdin.write('$taskdef.Actions.Item(1).Path = $env:_target\r\n');
3210
+ child.stdin.write('$taskdef.Actions.Item(1).Arguments = $env:_args\r\n');
3211
+ child.stdin.write('$tsfolder.RegisterTaskDefinition($task.Name, $taskdef, 4, $null, $null, $null)\r\n');
3212
+
3213
+ child.stdin.write('SCHTASKS /RUN /TN MeshChatTask\r\n');
3214
+ child.stdin.write('SCHTASKS /DELETE /F /TN MeshChatTask\r\nexit\r\n');
3215
+ child.waitExit();
3216
}
3184
- var child = require('child_process').execFile(process.env['windir'] + '\\System32\\WindowsPowerShell\\v1.0\\powershell.exe', ['powershell', '-noprofile', '-nologo', '-command', '-'], taskoptions);
3185
- child.stderr.on('data', function (c) { });
3186
- child.stdout.on('data', function (c) { });
3187
- child.stdin.write('SCHTASKS /CREATE /F /TN MeshChatTask /SC ONCE /ST 00:00 ');
3188
- if (user) { child.stdin.write('/RU $env:_user '); }
3189
- child.stdin.write('/TR "$env:_target $env:_args"\r\n');
3190
- child.stdin.write('$ts = New-Object -ComObject Schedule.service\r\n');
3191
- child.stdin.write('$ts.connect()\r\n');
3192
- child.stdin.write('$tsfolder = $ts.getfolder("\\")\r\n');
3193
- child.stdin.write('$task = $tsfolder.GetTask("MeshChatTask")\r\n');
3194
- child.stdin.write('$taskdef = $task.Definition\r\n');
3195
- child.stdin.write('$taskdef.Settings.StopIfGoingOnBatteries = $false\r\n');
3196
- child.stdin.write('$taskdef.Settings.DisallowStartIfOnBatteries = $false\r\n');
3197
- child.stdin.write('$taskdef.Actions.Item(1).Path = $env:_target\r\n');
3198
- child.stdin.write('$taskdef.Actions.Item(1).Arguments = $env:_args\r\n');
3199
- child.stdin.write('$tsfolder.RegisterTaskDefinition($task.Name, $taskdef, 4, $null, $null, $null)\r\n');
3200
-
3201
- child.stdin.write('SCHTASKS /RUN /TN MeshChatTask\r\n');
3202
- child.stdin.write('SCHTASKS /DELETE /F /TN MeshChatTask\r\nexit\r\n');
3203
- child.waitExit();
3217
break;
3218
case 'linux':
3219
child = require('child_process').execFile('/usr/bin/xdg-open', ['xdg-open', url], { uid: require('user-sessions').consoleUid() });