위 이미지 처럼 매시각 정각마다 또는 매시각 10분마다 카게, 필보, 수박대소동 등 각종 이벤트를 놓치지 않게하기위해 토스트알람(팝업)을 띄우는 방법입니다.

단순하게 그냥 윈도우 알람 기능 쓰면 되는거 아냐? 라고 하실수도있는데

알람 기능은 단점이 직접 내가 그 창을 닫기 전까지는 시끄럽게 계속 울리기도 하고 레이드중에 알람울리면 키가 씹히기도 해서 쓸모가 없다 생각했습니다.

그래서 윈도우 토스트 알람을 이용해서 원하는 시간마다 반복해서 우하단에 팝업을 띄우면 작업중인 창의 포커스를 가져가지 않아 레이드중에 키가 씹히지도않고 알아서 5초 뒤면 사라지니까 방해도 되지 않습니다.

처음에는 외부 프로그램을 이용해서 팝업을 띄우는 방식을 알려드리려 했는데 정해진 일정마다 팝업을 띄우는 프로그램은 대부분 매크로 기능을 포함하고있어 정지 사유에 해당 할 수 있다는 지적이 있었고 게임 화면의 포커스를 가져가서 키가 씹히기도 해서 윈도우 기본 기능만을 이용한 방법을 알려드리고자 합니다.
외부프로그램을 이용하지 않기에 방법이 조금은 복잡할수도 있는데 한번만 해두면 정말 편안합니다..


파워쉘에 간단한 명령어 삽입을 해서 토스트 알람을 구현할거고 각자 윈도우 버전이나 업데이트 세부 버전에따라 안되는 분들도 계실 수 있지만 GPT에 안되는 현상을 쓰면 알아서 수정도 척척해주니까 기본적인 방법만 알고가시고 세부적인것은 GPT를 통해 터치를 받으시면 될 것 같습니다.

------------------------------------------------------------------------------------
 ■ 목표
  • 매시간 정각 → 카게/필드보스 알림
  • 매시간 9분 → 이벤트 알림 (저는 10분에 딱 울리니까 가끔 못들어갈떄가 있어서 9분으로 세팅했습니다.)


1단계) 스크립트 폴더 만들기
D드라이브에  Scripts 폴더를 생성합니다. (D:Scripts)  
 ㄴ D없으면 C에 해도 되지만 아래 부분에 제가 D기준으로 경로를 설명드릴거라 수정은 다 하셔야 합니다.


2단계) BurntToast 설치

PowerShell 관리자 권한 실행

시작 메뉴 → PowerShell 검색 → 우클릭 → 관리자 권한으로 실행


① NuGet 설치

(처음 PowerShell 모듈 설치하는 PC만 필요)

PowerShell 창에 

Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
입력 후 엔터

② PowerShell Gallery 신뢰 설정
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
입력 후 엔터

③ BurntToast 설치
Install-Module BurntToast -Force
입력 후 엔터

④ 설치 확인
Get-Module -ListAvailable BurntToast
입력 후 엔터 
(아래처럼 나오면 설치 성공)
ModuleType Version Name
---------- ------- ----
Script     x.x.x   BurntToast

3단계) 정각 알림 PS1 만들기

메모장 실행 후 아래 내용 입력 (알림 내용은 본인 입맛에 맞게 수정)

Import-Module BurntToast

New-BurntToastNotification `
-Text "카게/필드보스", "카게/필드보스"

위에 생성해둔 D:Scripts 폴더에 다른 이름 저장, 파일명은 CageOrFieldBoss.ps1
파일 형식은 모든파일 선택 인코딩 방식은  UTF-8 (BOM)


4단계) 매시간 9분 알림 PS1 만들기

마찬가지로 메모장 실행 후 하기 내용 입력 (알림 내용은 입맛에 맞게 수정)

Import-Module BurntToast

New-BurntToastNotification `
-Text "이벤트", "9분 알림입니다."

위에 생성해둔 D:Scripts 폴더에 다른 이름 저장, 파일명은 Event.ps1
파일 형식은 모든파일 선택 인코딩 방식은  UTF-8 (BOM)



5단계) PowerShell 숨김 실행용 VBS 만들기  (이거 생략하면 알림 뜨기전에  cmd창이 떠서 화면을 가려요)

메모장 실행 후 하기 내용 입력
Set objShell = CreateObject("WScript.Shell")

script = WScript.Arguments(0)

objShell.Run "powershell.exe -NoProfile -ExecutionPolicy Bypass -File """ & script & """", 0, False

위에 생성해둔 D:Scripts 폴더에 다른 이름 저장, 파일명은 RunNotice.vbs
파일 형식은 모든파일 선택 인코딩 방식은 ANSI


6단계) PS1 직접 테스트
PowerShell 실행:

powershell.exe -ExecutionPolicy Bypass -File "D:ScriptsCageOrFieldBoss.ps1"
입력 후 엔터
우하단에 팝업이 뜨면 성공


7단계) 작업 스케줄러 등록
Win + R -> taskschd.msc  입력 후 엔터하시면 작업 스케줄러 실행 됨

작업 ① 카게/필드보스 (매시간 정각)
작업 만들기 선택 후 
이름 : 카게or필드보스 알림

트리거 탭에서 새로 만들기 선택
설정 : 매일
시작시간은 알람이 울리길 희망하는시간 (정각마다 울리길 원하면 00시 부터 23시까지 총 24개를 만들어야 합니다. 이거 한방에 24개 만드는 방법이 있긴한데 그럼 따로 명령문을 써야해서 그걸로 하실분은 아래쪽에 별첨으로 설명 따로 남길게요)

동작 탭에서 새로 만들기 선택
프로그램/스크립트 창에 해당 문구 입력 : wscript.exe
인수 추가 탭에 해당 문구 입력 : "D:ScriptsRunNotice.vbs" "D:ScriptsCageOrFieldBoss.ps1"


작업 ② 이벤트 (매시간 9분)

작업 만들기 선택 후 
이름 : 이벤트 알림

트리거 탭에서 새로 만들기 선택
설정 : 매일
시작시간은 알람이 울리길 희망하는시간 (이벤트 알림이니 매시각 9분이나 10분으로 설정 00시 부터 23시까지 총 24개를 만들어야 합니다. 이거 한방에 24개 만드는 방법이 있긴한데 그럼 따로 명령문을 써야해서 그걸로 하실분은 아래쪽에 별첨으로 설명 따로 남길게요)

동작 탭
프로그램 : wscript.exe
인수 : "D:ScriptsRunNotice.vbs" "D:ScriptsEvent.ps1"


8단계) Windows 알림 설정 확인 (알림이 안 뜨면 확인)


설정→ 시스템→ 알림 및 작업 들어간 후 앱 및 다른 보낸 사람으로부터 알림 받기 : 켜기
집중 지원 탭 : 게임중에 알림 받지않기 같은 설정들이 있는데 관련 설정 모두 끄기 (휴대폰으로 치면 방해금지 같은기능이라 켜있으면 토스트 알람이 게임중엔 안옴니다.)



별첨) 작업스케줄러에 한방에 24개 (48개) 알람 다 등록 하는 법

메모장 열고 아래 내용을 D:ScriptsInstallScheduler.ps1 로 저장하세요.  (파일형식 : 모든파일, 인코딩 : UTF-8 BOM)


# InstallScheduler.ps1

$ScriptPath = "D:Scripts"

function Create-TaskXml($TaskName, $Ps1File, $Minute) {

$Triggers = ""

for ($h=0; $h -lt 24; $h++) {

$Triggers += @"
    <CalendarTrigger>
      <StartBoundary>2026-01-01T$("{0:D2}" -f $h):$("{0:D2}" -f $Minute):00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>

"@

}

$xml = @"
<?xml version="1.0" encoding="UTF-16"?>

<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">

<Triggers>

$Triggers

</Triggers>

<Principals>
<Principal id="Author">
<LogonType>InteractiveToken</LogonType>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>

<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<StartWhenAvailable>true</StartWhenAvailable>
<ExecutionTimeLimit>PT5M</ExecutionTimeLimit>
</Settings>

<Actions Context="Author">

<Exec>
<Command>wscript.exe</Command>
<Arguments>"$ScriptPathRunNotice.vbs" "$ScriptPath$Ps1File"</Arguments>
</Exec>

</Actions>

</Task>
"@

return $xml
}


# 기존 작업 제거

Unregister-ScheduledTask `
-TaskName "카게or필드보스 알림" `
-Confirm:$false `
-ErrorAction SilentlyContinue


Unregister-ScheduledTask `
-TaskName "이벤트 알림" `
-Confirm:$false `
-ErrorAction SilentlyContinue


# XML 생성

$BossXml = Create-TaskXml `
"카게or필드보스 알림" `
"CageOrFieldBoss.ps1" `
0


$EventXml = Create-TaskXml `
"이벤트 알림" `
"Event.ps1" `
9


# 임시 XML 저장

$BossXmlFile = "$env:TEMPBoss.xml"
$EventXmlFile = "$env:TEMPEvent.xml"


$BossXml | Out-File $BossXmlFile -Encoding Unicode
$EventXml | Out-File $EventXmlFile -Encoding Unicode


# 작업 등록

Register-ScheduledTask `
-TaskName "카게or필드보스 알림" `
-Xml (Get-Content $BossXmlFile -Raw)


Register-ScheduledTask `
-TaskName "이벤트 알림" `
-Xml (Get-Content $EventXmlFile -Raw)


Write-Host ""
Write-Host "등록 완료"
Write-Host "정각 : 카게or필드보스"
Write-Host "매시간 9분 : 이벤트"







저장 하셨으면

PowerShell 관리자 모드로 실행 후 아래 내용 입력 후 엔터
powershell -ExecutionPolicy Bypass -File "D:ScriptsInstallScheduler.ps1"

하셨다면 작업 스케줄러 실행 후 하기처럼 48개의 알람목록이 저장되었는지 확인 하시면 됩니다.

 (나중에 수박대소동 이벤트 끝나면 이벤트 알림 24개는 드래그로 쭉 긁어서 우클릭 -> 삭제 또는 다음에 이벤트 또 있을수있으니까 미사용으로 설정해놨다 필요시 설정으로 바꾸면 됨)


여기까지 다시 한번 말씀드리자면 각자 윈도우 세부 업데이트 버전이 달라 중간에 안먹히는 코드가 있을 수도 있지만 안되는 현상을 GPT에 남기면 알잘딱 잘 수정해줍니다.
(저도 처음에 적용할때 한방에 바로 안되서 여기 올린 방법은 GPT에서 제 윈도우 환경에 맞게 딱딱 수정해준버전을 올렸으니 참고해주시고 안되는 부분만 따로 GPT 도움 받아 수정하시면 될 것 같습니다.)

이상입니다.