programing

Windows 10의 파워셸을 사용하여 여러 데스크톱에서 프로그램 시작

stoneblock 2023. 8. 22. 21:47

Windows 10의 파워셸을 사용하여 여러 데스크톱에서 프로그램 시작

Windows 10의 여러 데스크톱에서 여러 프로그램 C:\program1.exe, C:\program2.exe 등을 시작하려고 합니다.예를 들어 프로그램 1과 2는 바탕 화면 1에서 나란히 시작하고 프로그램 3은 두 번째 바탕 화면에서 시작하고 프로그램 4는 세 번째 바탕 화면에서 최소화해야 합니다.

이 작업은 파워셸 또는 배치 스크립트를 사용하여 수행해야 합니다.PowerShell 스크립트가 충분한 데스크톱이 열려 있는지 여부를 자동으로 감지하고 필요한 경우 더 많은 데스크톱을 열 수 있다면 솔루션이 완벽할 것입니다.

배치 파일 실행 프로그램 집합 위치는 여러 프로그램을 나란히 열고 크기를 조정하는 문제에 대한 해결책을 제공합니다.그러나 이러한 솔루션은 여러 윈도우즈 10 데스크톱을 지원하지 않습니다.솔루션은 Monitorinfoview 및 NirCmd(동일한 웹 사이트)에 의존합니다.도구 모니터 정보 보기는 여러 데스크톱 정보를 검색하지 않고 여러 화면만 검색합니다.NirCmd에는 특정 데스크톱으로 프로그램을 보내는 명령도 포함되어 있지 않습니다.

가상 데스크톱에서 작동하는 Powershell 명령이 있습니다.먼저 가상 데스크톱 모듈을 설치해야 합니다.Install-Module VirtualDesktop

# 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

시작 프로세스가 다음을 사용하여 창을 초기화할 때까지 기다려야 할 수 있습니다.Start-Sleep

여기서 더 읽기: https://gallery.technet.microsoft.com/scriptcenter/Powershell-commands-to-d0e79cc5

이것은 당신을 정확하게 연결시켜 줄 것입니다.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

C# InputSimulator.dll은 https://inputsimulator.codeplex.com/ 에서 얻을 수 있습니다. 링크가 비활성화되었지만 웨이백 시스템이 https://web.archive.org/web/20210501220444/https ://archive.codeplex.com/ ?p= 입력 시뮬레이터를 도와줄 것입니다.

유형이 추가되면 전화를 걸 수 있습니다.[CSharpPS.PS]::NewVD()새 가상 데스크톱을 생성합니다.여기서 특정 프로그램을 실행할 수 있습니다.절전 모드를 수동으로 설정해야 할 수도 있습니다.예:

calc Start-Sleep -Milliseconds 500

그런 다음 새 가상 데스크톱을 엽니다.[CSharpPS.PS]::NewVD() Start-Sleep -Milliseconds 500 notepad

C# 클래스를 확장하여 가상 데스크톱 간에 변경하거나 필요한 애플리케이션을 최소화할 수 있습니다.

언급URL : https://stackoverflow.com/questions/32491872/starting-programs-on-multiple-desktops-using-powershell-in-windows-10