Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 620 Vote(s) - 3.55 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Starting programs on multiple desktops using powershell in windows 10

#1
Suppose I want to start several programs C:\program1.exe, C:\program2.exe, etc. on multiple desktops in windows 10. For example, programs 1 and 2 should be started on desktop 1 side-by-side, program 3 should be started on the second desktop, while program 4 should be started minimized on the third desktop.

This should be achieved using either a powershell or batch script. The solution would be perfect if the powershell script automatically detects whether enough desktops are open and open more desktops if necessary.

[batch-file-run-program-set position](

[To see links please register here]

) provides a solution to the problem of opening multiple programs side by side and resizing them. However, these solutions do not address multiple windows 10 desktops. The solutions rely on [Monitorinfoview](

[To see links please register here]

) and NirCmd (same website). The tool Monitorinfoview does not retrieve multiple desktop information, but only multiple screens. NirCmd also does not include commands to send programs to specific desktops.
Reply

#2
There are Powershell commands that work with virtual desktops.
First, you will have to install virtual desktop module with `Install-Module VirtualDesktop`

``` lang-sql
# Switch to desktop 2 (count starts with 0)
Get-Desktop 1 | Switch-Desktop

# Move obs64.exe to desktop 3
(ps obs64)[0].MainWindowHandle | Move-Window (Get-Desktop 2) | Out-Null
```

You may have to wait for the starting process to initialize its window with `Start-Sleep`

Read more here:

[To see links please register here]

Reply

#3
This should get you on the right lines. It uses PowerShell, C# (inside PS), Windows shortcuts and basic commands. Save this in a .ps1 script.

$Source = @"
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WindowsInput;

namespace CSharpPS
{
public static class PS
{
public static void NewVD()
{
InputSimulator.SimulateKeyDown(VirtualKeyCode.LWIN);
InputSimulator.SimulateKeyDown(VirtualKeyCode.CONTROL);
InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_D);
InputSimulator.SimulateKeyUp(VirtualKeyCode.LWIN);
InputSimulator.SimulateKeyUp(VirtualKeyCode.CONTROL);
}
}
}
"@;

Add-Type -TypeDefinition $Source -Language CSharp -ReferencedAssemblies InputSimulator.dll

You can get the C# InputSimulator.dll from

[To see links please register here]

- link is dead but wayback machine should help

[To see links please register here]


Once the type has been added you can then call `[CSharpPS.PS]::NewVD()` to create new virtual desktop. From here you can run specific programs.
You may need to manually set a sleep also. An example :

`calc
Start-Sleep -Milliseconds 500`

Then open a new virtual desktop `[CSharpPS.PS]::NewVD()
Start-Sleep -Milliseconds 500
notepad
`

You could expand the C# class to allow changing between Virtual Desktops or minimizing applications like you required.
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through