사내 내부망 전용 도구 (WGC VCCS 로컬 경로 의존) · 가상 시연으로 진행됩니다
1
프로젝트 핵심 요약
🎯 개발 목적
자정 마감 시 수동으로 VHF 녹음 폴더를 열어 파일 개수를 세던 반복 작업 제거
⚙️ 주요 기능
16KB 이상 TX 파일 실시간 자동 필터링 · 5초 주기 갱신 · 최상단 고정 위젯창
🛠️ 기술 스택
PowerShell v5.1 · .NET WinForms · 멀티 타이머 (5000ms + 500ms)
✅ 기대 효과
자정 마감 집계 시간 → 0초 완전 제거 · 휴먼 에러(누락·오타) 원천 차단
2
도입 전 / 후 비교
⚠️ Before · 기존 방식
- 자정마다 WGC VCCS 녹음 폴더를 수동으로 탐색기에서 열기
- 파일명에 "TX" 포함 + 16KB 이상 조건을 눈으로 직접 필터링
- 하나씩 카운팅하다 누락 또는 오타 발생 위험
- 실시간 교신량 현황 파악 불가능
매일 자정 수동 집계
✅ After · 자동화 후
- 스크립트 실행만 하면 화면 구석에 위젯 자동 표출
- 5초마다 자동 갱신 — 항상 최신 교신량 표시
- 전일 / 금일 교신량 동시 비교 표출
- 작동 중 표시 인디케이터(●)로 상태 시각 확인
🕐 집계 시간 → 0초
3
가상 시연 · 실행 흐름
1
스크립트 실행
교신량 위젯.ps1 실행 → WinForms 창 로드 및 경로 초기화
2
실시간 파일 스캔
Get-ChildItem로 TX 파일 필터링 · 크기 조건(16KB↑) 검사 · 카운팅
3
위젯 자동 표출 및 갱신
화면 최상단 고정 위젯에 교신량 출력 · 5초마다 자동 업데이트
폴더 스캔 중...0%
TX 파일 필터링...0%
교신량 산출 완료0%
+
소스코드 전문 공개
실제 구동되는 스크립트 소스코드 원본입니다.
교신량 위젯.ps1
Add-Type -AssemblyName System.Windows.Forms
$p = "C:\Program Files\WGC\VCCS\Client\Record"
$f = {
$d0 = Get-Date; $d1 = $d0.AddDays(-1)
$res = @($d1, $d0) | % {
$dt = $_.ToString("yyyy_MM_dd")
$dt2 = $_.ToString("M월 d일")
$t = Join-Path $p $dt
$c = if (Test-Path $t) {
(Get-ChildItem $t -filter "*TX*" | Where-Object { $_.Length -ge 16kb }).Count
} else { 0 }
"$dt2 교신량: $($c)건"
}
$l.Text = $res -join "`n"
}
$obj = New-Object Windows.Forms.Form
$obj.Width=410; $obj.Height=230; $obj.Text="교신량 집계"; $obj.Topmost=1
$l = New-Object Windows.Forms.Label
$l.SetBounds(20,20,410,100); $l.Font="맑은 고딕, 24pt"
$btn = New-Object Windows.Forms.Button
$btn.SetBounds(20,130,100,30); $btn.Text="새로고침"; $btn.Add_Click($f)
$tmr = New-Object Windows.Forms.Timer
$tmr.Interval = 5000
$tmr.Add_Tick($f)
$tmr.Start()
& $f
$obj.Controls.AddRange(@($l,$btn))
[Windows.Forms.Application]::Run($obj)