18

Angenommen, ich möchte mehrere Programme C: \ program1.exe, C: \ program2.exe usw. auf mehreren Desktops in Windows 10 starten. Zum Beispiel Programme 1 und 2 sollte auf dem Desktop 1 Seite-an-Seite gestartet werden, Programm 3 sollte auf dem zweiten Desktop gestartet werden, während Programm 4 auf dem dritten Desktop minimiert gestartet werden sollte.Starten von Programmen auf mehreren Desktops mit Powershell in Windows 10

Dies sollte mit einem Powershell oder Batch-Skript erreicht werden. Die Lösung wäre perfekt, wenn das Powershell-Skript automatisch erkennt, ob genügend Desktops geöffnet sind und bei Bedarf weitere Desktops öffnen.

batch-file-run-program-set position bietet eine Lösung für das Problem, mehrere Programme nebeneinander zu öffnen und ihre Größe zu ändern. Diese Lösungen adressieren jedoch nicht mehrere Windows 10-Desktops. Die Lösungen basieren auf Monitorinfoview und NirCmd (gleiche Website). Das Tool MonitorinfoView ruft nicht mehrere Desktop-Informationen, sondern nur mehrere Bildschirme ab. NirCmd enthält auch keine Befehle zum Senden von Programmen an bestimmte Desktops.

+3

Haben Sie darüber Nachforschungen angestellt? Dies ist eine Gemeinsamkeit, wir bauen keine Dinge für andere, wir geben ihnen keine Erfahrung, wenn es um etwas geht, was Sie angefangen haben. –

+0

ja, ich habe die folgende lösung ausprobiert: [link] (http://stackoverflow.com/questions/10392620/how-can-a-batch-file-run-a-program-and-set-the-position-and -size-of-the-window) Ich konnte jedoch nicht herausfinden, wie Powershell bestimmte Desktops ansprechen kann. – HRSE

+2

Dann fügen Sie hinzu, was Sie erhalten haben, wenn Sie das tun, Fehler, Spuren, Details .. –

Antwort

3

Dies sollte Sie auf den richtigen Weg bringen. Es verwendet PowerShell, C# (in PS), Windows-Verknüpfungen und grundlegende Befehle. Speichern Sie dies in einem .ps1-Skript.

$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 

Sie können die C# InputSimulator.dll erhalten von https://inputsimulator.codeplex.com/

Sobald der Typ hinzugefügt wurde Sie dann [CSharpPS.PS]::NewVD() aufrufen können neue virtuelle Desktop zu erstellen. Von hier aus können Sie bestimmte Programme ausführen. Möglicherweise müssen Sie auch manuell einen Ruhezustand festlegen. Ein Beispiel:

calc Start-Sleep -Milliseconds 500

Dann öffnen Sie einen neuen virtuellen Desktop [CSharpPS.PS]::NewVD() Start-Sleep -Milliseconds 500 notepad

Sie konnten die C# Klasse erweitern zwischen virtuellen Desktops zu ermöglichen, zu ändern oder zu minimieren Anwendungen wie Sie forderten.

+5

Ich glaube, das ist die beste mögliche Antwort und ich glaube, das ist lächerlich. Rette uns vor uns selbst, Microsoft.Es wäre großartig, wenn Apps ihren Standard-Desktop festlegen könnten. – andymule