18

假設我想在Windows 10中的多個桌面上啓動多個程序C:\ program1.exe,C:\ program2.exe等。例如,程序1和2應該在桌面1上並行啓動,程序3應該在第二臺桌面上啓動,而程序4應該在第三臺桌面上啓動最小化。在Windows 10中使用PowerShell啓動多個桌面上的程序

這應該使用powershell或批處理腳本來實現。如果powershell腳本能夠自動檢測是否有足夠的桌面打開並在必要時打開更多桌面,那麼解決方案將會非常完美。

batch-file-run-program-set position爲並排打開多個程序並調整它們的大小提供了一種解決方案。但是,這些解決方案不能解決多個Windows 10桌面的問題。解決方案依賴於Monitorinfoview和NirCmd(同一網站)。 Monitorinfoview工具不檢索多個桌面信息,但只檢索多個屏幕。 NirCmd也不包括將程序發送到特定桌面的命令。

+3

你有沒有對此做過任何研究?這是一種迷戀,我們不爲別人建立事物,如果你被困在開始做的某些事情上,我們會幫助你。 –

+0

是的,我嘗試了以下解決方案:[鏈接](http://stackoverflow.com/questions/10392620/how-can-a-batch-file-run-a-program-and-set-the-position-and - 窗口大小)但是,我無法瞭解PowerShell如何鎖定特定的桌面。 – HRSE

+2

然後包括您在收到時收到的錯誤,錯誤,痕跡和詳細信息。 –

回答

3

這應該讓你在正確的路線。它使用PowerShell,C#(PS內部),Windows快捷鍵和基本命令。將其保存在.ps1腳本中。

$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 

您可以一次類型已添加,那麼你可以調用[CSharpPS.PS]::NewVD()創建新的虛擬桌面從https://inputsimulator.codeplex.com/

獲得C#InputSimulator.dll。從這裏你可以運行特定的程序。 您可能還需要手動設置睡眠。舉個例子:

calc Start-Sleep -Milliseconds 500

然後打開一個新的虛擬桌面[CSharpPS.PS]::NewVD() Start-Sleep -Milliseconds 500 notepad

你可以展開C#類,允許虛擬桌面之間進行切換或像你需要最大限度地減少應用程序。

+5

我相信這是最好的答案,我相信這很荒謬。拯救我們自己,微軟。如果允許應用程序設置他們的默認桌面將會很棒。 – andymule

相關問題