사례 1 · PowerShell · Win32 API

VTS 모니터링 최적화
윈도우 최상단 강제 고정 유틸리티

시스템 경고창이 다른 화면에 가려지지 않도록 원클릭으로 고정. 15줄의 순수 PowerShell 스크립트.

🔒 사내 내부망 전용 도구 · 가상 시연으로 진행됩니다
1 프로젝트 핵심 요약
🎯 개발 목적 VTS 시스템 경고창이 다른 화면에 가려지는 모니터링 사각지대 제거
⚙️ 주요 기능 5초 대기 후 포커스된 윈도우를 OS 레벨에서 영구 최상단 고정
🛠️ 기술 스택 PowerShell v5.1 · Win32 API (user32.dll) · .NET Framework
PowerShell user32.dll SetWindowPos
✅ 기대 효과 교대 시 창 배치 수동 작업 완전 제거 · 레이다 관제 시야 20% 확장
2 도입 전 / 후 비교
⚠️ Before · 기존 방식
  • 경고창이 다른 화면에 가려져 즉각 인지 지연
  • 경고창 상시 노출을 위해 모니터 화면을 수동 분할
  • 교대 근무마다 창 경계를 마우스로 매번 드래그 조정
  • 레이다 화면이 좁아져 관제 가시 구역 손실
매 교대마다 수동 조정
✅ After · 자동화 후
  • 스크립트 실행 → 5초 내 창 클릭 → 즉시 최상단 고정
  • 별도 소프트웨어 설치 없이 OS 내장 API만 사용
  • 한번 고정하면 재부팅 전까지 영구 유지
  • 레이다 화면 전체를 100% 관제용으로 활용
🕐 수동 조정 시간 → 0초
3 가상 시연 · 실행 흐름
1

스크립트 실행

창고정.ps1을 우클릭 → PowerShell에서 실행

2

5초 카운트다운 대기

이 시간 동안 고정할 창(System Warnings)을 클릭하여 활성화

3

자동 완료

Win32 SetWindowPos API 호출 → 해당 창 영구 최상단 고정 완료

Windows PowerShell
# 시뮬레이션을 시작하려면 아래 버튼을 클릭하세요
+ 소스코드 전문 공개

실제 구동되는 스크립트 소스코드 원본입니다.

창고정.ps1
Add-Type @"
using System;
using System.Runtime.InteropServices;

public class W {
    [DllImport("user32.dll")]
    public static extern bool SetWindowPos(IntPtr h, IntPtr a, int x, int y, int c, int d, uint f);

    [DllImport("user32.dll")]
    public static extern IntPtr GetForegroundWindow();
}
"@

sleep 5

[W]::SetWindowPos([W]::GetForegroundWindow(), -1, 0, 0, 0, 0, 3)