익스플로러가 흩어져 버린다? PowerShell로 정리할 수 있었습니다!

8684 단어 WindowsPowerShell
내가 Windows 환경에서 작업하고 있으면 어느새 다양한 응용 프로그램 창이 표시됩니다.
원하는 윈도우로 전환하려고 하면 윈도우를 잡기 위해서 몇번이나 마우스 조작을 해야 합니다. 작업 표시줄의 작업에도 몇 번의 클릭이 필요합니다.
특히 10개 정도 열려 버리는 익스플로러의 조작이 어렵습니다.

그래서 PowerShell을 사용하여 이러한 탐색기를 깔끔하게 정렬하여 다루기 쉽습니다.

포인트


  • $shell=New-Object -ComObject Shell.Application; $shell.Windows() 에서 탐색기 정보를 얻을 수 있습니다.
  • $shell.Windows() | foreach { $_.Left=0; $_.Top=0; $_.Width=800; $_.Height=600; } 에서 탐색기의 위치와 크기를 변경할 수 있습니다.
  • [System.Windows.Forms.Screen]::PrimaryScreen 또는 [System.Windows.Forms.Screen]::AllScreens 에서 화면 크기를 얻을 수 있습니다.

  • 결과 이미지



    다음과 같이 탐색기를 나란히 보았습니다.



    스크립트



    화면의 좌상에서 우하로, 조금 어긋나면서 겹쳐서 늘어놓는다.
    또한, 겹치는 순서는, 표시하고 있는 패스 순서로 했습니다.

    탐색기를 왼쪽 상단에서 정렬 .ps1
    $w = 800
    $h = 600
    $x = 0
    $y = 0
    $dx = 30
    $dy = 30
    $shell = New-Object -ComObject Shell.Application
    $shell.Windows() | where { $_.Name -eq "エクスプローラー" } | sort LocationURL | foreach {
      $_.Left=$x; $_.Top=$y; $_.Width=$w; $_.Height=$h; $x+=$dx; $y+=$dy;
    }
    

    마찬가지로 화면 오른쪽 하단을 기준으로 정렬합니다.

    탐색기를 오른쪽 하단에서 정렬 .ps1
    Add-Type -AssemblyName System.Windows.Forms
    $sw = [System.Windows.Forms.Screen]::PrimaryScreen.WorkingArea.Width
    $sh = [System.Windows.Forms.Screen]::PrimaryScreen.WorkingArea.Height
    $w = 800
    $h = 600
    $x = $sw - $w
    $y = $sh - $h
    $dx = -30
    $dy = -30
    $shell = New-Object -ComObject Shell.Application
    $shell.Windows() | where { $_.Name -eq "エクスプローラー" } | sort LocationURL | foreach {
      $_.Left=$x; $_.Top=$y; $_.Width=$w; $_.Height=$h; $x+=$dx; $y+=$dy;
    }
    

    동작 확인 환경


  • Windows 10
  • PowerShell 5.1

  • 참고로 한 사이트


  • powershell - HWND를 사용하여 IE 창 선택
  • [Windows] PowerShell에서 멀티 스크린 해상도 얻기 | 비디오 및 주변
  • 좋은 웹페이지 즐겨찾기