윈도우 프로그램 예약 자동 실행,
텔레그램을 사용한 원격 제어
트레이에 상주하면서 등록한 .exe / .bat / .cmd 를 지정한 시간에 자동 실행해 주는 무료 Windows 도구. Windows 작업 스케줄러보다 단순하게 5분이면 첫 자동화를 만들 수 있습니다. 📱 텔레그램 봇으로 휴대폰에서 PC 를 원격 제어 할 수도 있어요 — 회사에서 집 PC 자동매매 확인·원격 잠금·화면 캡쳐까지.
Windows 10/11 (64-bit) · 별도 런타임 불필요 · 시작 메뉴 등록까지 한 번에. 릴리스 저장소
▶ 동작 데모 — 실행·검색·히스토리 흐름
아래는 실제 앱의 사용자 흐름을 그대로 재현한 인터랙티브 데모입니다.“지금 실행” 강조 → 행 펄스 + 알림 → 검색 필터링 → 히스토리 창이 자동으로 순환됩니다. 다운로드 전에 한 번 보시면 감이 옵니다.
한 화면에서 모든 일정 관리

위 화면은 실제 사용 예시입니다. kiwoomStart.bat 이 월~금 08:00 에 자동 실행되도록 설정돼 있고, 오늘 08:00 에 성공적으로 동작한 기록과 내일 08:00 의 다음 실행 시각이 한눈에 보입니다.
왜 만들었나
Windows 작업 스케줄러는 강력하지만 클릭이 너무 많이 필요합니다. 단순히 “월요일 아침마다 이 .bat 파일 실행”을 하려고 트리거 → 동작 → 조건 → 설정 4단계 마법사를 거쳐야 하고, 한 번 만든 일정을 수정하려면 다시 그 미궁 속으로 들어가야 합니다.
GUI Apps Controller 는 딱 하나의 화면에 모든 일정을 표로 보여주고, 클릭 두 번이면 추가·편집·삭제가 됩니다.
누구에게 좋은가
- 자동매매 / 알고리즘 트레이딩 — 장 시작 전 HTS, 시장 데이터 수집 스크립트, 봇 자동 기동
- 개발자 — 매일 아침 빌드 / 백업 / 로그 정리 스크립트 트리거
- 콘텐츠 / 디자이너 — 일정한 시간에 렌더링·동기화 작업 시작
- 누구나 — 영화 시간에 미디어 플레이어 자동 실행, 정해진 시각에 PC 자동 잠금 등 일상 자동화
다운로드 & 설치
위 다운로드 버튼 또는 codingnow_release 저장소 에서 GuiAppsController-Setup-1.5.1.exe 한 개만 받으면 됩니다. 실행파일·설치파일은 공개 저장소(codingnow_release)에서 배포되며, 앱 소스 코드 저장소는 현재 정리 중이라 비공개입니다.
- Windows 10 / 11 (64-bit)
- Python 같은 사전 설치 불필요
- 설치 → 시작 메뉴에서 실행 → 트레이 아이콘이 뜨면 끝
Windows SmartScreen 이 처음 한 번 경고를 띄울 수 있습니다. (자체 서명한 무료 도구라 그렇습니다.) 추가 정보 → 실행으로 넘어가시면 됩니다.
5분 만에 첫 자동화 만들기
위 스크린샷의 kiwoomStart 처럼 매일 오전 8시에 배치 파일을 실행하도록 만들어 봅니다.
1단계 — 추가 클릭
툴바의 [추가] 또는 Ctrl+N 을 누르면 편집 다이얼로그가 열립니다.
2단계 — 프로그램 정보 입력
- 이름 — 알아볼 수 있는 라벨 (예: kiwoomStart)
- 경로 — [찾아보기] 버튼으로
.exe/.bat/.cmd선택 - 인자 — 필요하면 명령줄 인자 (옵션)
- 작업 폴더 — 비워두면 실행 파일과 같은 폴더 사용
3단계 — 일정 설정
- 매일 — 매일 같은 시간 (예: 매일 09:00)
- 매주 — 요일 선택 (월·화·수·목·금만 체크하면 평일 출근 자동화)
- 한 번 — 특정 일시 1회 (배포 일정 알림 등)
4단계 — 저장
[확인]을 누르면 표에 항목이 추가됩니다. 이때 표의 “다음 실행” 컬럼에 APScheduler 가 계산한 실제 다음 실행 시각이 표시되므로 일정이 의도대로 잡혔는지 한눈에 확인할 수 있습니다.
5단계 — 검증
새로 만든 항목을 선택하고 [지금 실행] (Ctrl+R) 을 누르면 일정과 무관하게 즉시 실행됩니다. 등록 직후 “내 .bat 파일이 잘 도는가?” 를 확인하는 가장 빠른 방법입니다.
💡 표에서 활성된 행은 옅은 녹색으로 강조되고, 만료된 1회 일정은 옅은 빨강으로 표시됩니다. 한눈에 어떤 게 살아있는지 보입니다.
📱 텔레그램 봇 — 휴대폰에서 PC 원격 제어
v1.5.x 부터 추가된 핵심 기능입니다. 텔레그램 봇을 한 번만 연결해두면 어디서든 휴대폰으로 PC 를 조작할 수 있어요. 회사에서 집 PC 의 자동매매가 돌고 있는지 확인하거나, 외출 중에 원격으로 PC 잠금·화면 캡쳐·프로그램 즉시 실행이 가능합니다.
1단계 — BotFather 로 봇 만들고 토큰 받기
- 텔레그램에서
@BotFather검색 → 대화 시작 →/start /newbot명령 입력- 봇 이름 입력 (예:
내 PC 컨트롤러— 사용자에게 보이는 이름) - 봇 username 입력 (예:
my_pc_controller_bot— 반드시bot으로 끝나야 함) - BotFather 응답 메시지 안의 토큰 복사 — 형식:
123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
bot.Use this token to access the HTTP API:
123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11Keep your token secure and store it safely, it can be used by anyone to control your bot.
↑ BotFather 와의 실제 대화 흐름 (재현). 마지막 토큰을 복사해 두세요.
⚠ 토큰은 비밀번호처럼 다뤄야 합니다. 노출되면 누구나 봇 제어 가능. 스크린샷·블로그·깃허브 코드에 올리지 마세요. 유출됐다면 BotFather 에서 /revoke 로 토큰 재발급.
2단계 — Chat ID 받기 (두 가지 방법)
방법 ① @userinfobot 사용 (간단)
- 텔레그램에서
userinfobot검색 → 결과 중 “User Info • Get ID • IDbot” (파란 ✔ 인증 마크 · 사용자 50만+) 을 선택. 비슷한 이름의 다른 봇들(예:@UserInfo_Bot)은 impersonator 라 응답 없습니다. - 대화 시작 후
/start또는 아무 메시지 보내면 즉시 응답에 본인 ID 가 표시됨 — 예:Id: 123456789 - 그 숫자가 곧 chat_id
First: 홍길동
Username: @gildong
Language: ko
↑ Id 줄의 숫자(123456789)가 chat_id 입니다.
방법 ② getUpdates API 직접 조회 (정확·확실)
- 1단계에서 만든 봇에게 텔레그램에서 메시지 한 번 보내기 (
/start아무거나 OK) - 브라우저 주소창에 다음 URL 입력 (
<TOKEN>자리에 1단계 토큰 붙여넣기):https://api.telegram.org/bot<TOKEN>/getUpdates
- JSON 응답에서
"chat":{"id":123456789}부분의 숫자가 chat_id - 응답이
{"ok":true,"result":[]}로 비어있으면 → 봇에게 메시지 먼저 보내고 다시 호출
{
"ok": true,
"result": [
{
"update_id": 100000001,
"message": {
"message_id": 1,
"from": { "id": 123456789, "first_name": "홍길동" },
"chat": { "id": 123456789, "type": "private" },
"date": 1715000000,
"text": "/start"
}
}
]
}↑ chat.id 의 숫자가 chat_id 입니다.
💡 그룹 채팅에서 쓰려면: 봇을 그룹에 초대 후 그룹에서 메시지 보내고 같은 getUpdates 호출 — 그룹의 chat.id 는 음수 (예: -123456789) 로 나옵니다.
3단계 — 앱 설정에 등록
GUI Apps Controller 의 설정 → Telegram 탭에서:
- Bot Token — 1단계에서 복사한 토큰
- Chat ID — 2단계에서 받은 숫자 (등록된 chat_id 만 명령을 받는 화이트리스트로 동작)
- 활성화 체크 후 저장
설정 저장 후 텔레그램 봇에게 /list 를 보내보면 등록된 프로그램 목록이 응답으로 옵니다. 정상 응답이 오면 연동 완료.
사용 가능한 명령
/list— 등록된 프로그램 보기/run <이름>— 원격 즉시 실행/screenshot— PC 화면 캡쳐를 휴대폰으로 받기/lock,/shutdown,/restart— PC 잠금 / 종료 / 재시작/history— 최근 실행 내역 확인
🔒 보안: chat_id 화이트리스트 덕분에 다른 사람이 봇 username 을 알아도 명령은 차단됩니다. 화이트리스트에 없는 chat_id 의 메시지는 무시돼요. 다만 토큰 자체가 노출되면 봇 자체를 재발급해야 하니, 토큰은 절대 깃허브·블로그에 노출하지 마세요.
일상 사용 팁
검색으로 빠르게 찾기
표 상단 검색창에 이름이나 경로 일부를 입력하면 즉시 필터링됩니다. 등록 프로그램이 30개를 넘어가도 쾌적합니다.
다중 선택 + 일괄 작업
Ctrl+클릭 / Shift+클릭으로 여러 항목을 선택한 뒤:
- 활성/비활성 토글 — 휴가 동안 전부 일시 정지
- 삭제 — 더 이상 안 쓰는 항목 한 번에 정리
- 복제 (
Ctrl+D) — 비슷한 설정을 여러 개 만들 때 시간 절약
히스토리 (Ctrl+H)
“어제 새벽 3시에 진짜 실행됐을까?” — 히스토리 창이 답을 줍니다. 최근 500개의 launch / exit / 실패 이벤트가 영구 저장됩니다. 종료 코드 컬러 강조(녹색 = 성공, 빨강 = 실패) 로 무엇이 정상이고 무엇이 아닌지 즉각 보입니다.
가져오기 / 내보내기
[내보내기] 로 JSON 파일을 만들어 두면, 다른 PC 에서 [가져오기] 로 한 번에 모든 일정을 복원할 수 있습니다. PC 교체나 사무실/집 환경 동기화에 유용합니다.
절전 후에도 안전
노트북을 닫았다가 다시 열어도 일정은 정상 동작합니다. Windows 절전/재개 이벤트를 감지해 스케줄러가 자동으로 재계산하기 때문입니다. APScheduler 단독 사용 시 흔히 발생하는 “절전 후 다음 실행이 빗나가는” 문제가 없습니다.
다크 모드
시스템 테마를 다크로 바꾸면 표 배경과 강조 색상이 자동으로 어두운 톤으로 전환됩니다.
자주 묻는 질문
Q. 프로그램이 안 떴어요. 왜인지 알 수 있나요?
%APPDATA%\GuiAppsController\logs\app.log 에 모든 launch / exit 이벤트가 기록됩니다. 회전 핸들러 (2MB × 5개 보존) 로 디스크를 채우지도 않습니다. 히스토리 창에서도 같은 정보를 GUI 로 볼 수 있습니다.
Q. PC 를 끄면 그 시간대 일정은요?
PC 가 꺼져 있던 시간대의 일정은 건너뜁니다 (APScheduler 기본). 다음 일정부터 정상 동작합니다.
Q. 1회 일정인데 시간이 이미 지났어요.
표에서 “(만료됨)” 라벨과 함께 옅은 빨강 배경으로 표시됩니다. 편집해서 미래 시각으로 변경하고 저장하면 다시 정상 등록됩니다.
Q. Windows 시작 시 자동 실행 되게 하려면?
설정에서 “Windows 시작 시 자동 실행” 을 체크하면 됩니다. HKCU\...\Run 에 등록되어 관리자 권한 없이도 동작합니다.
Q. 동시 저장으로 설정이 깨질 수 있나요?
v1.0.3 부터 저장 시 fsync + atomic replace + JSON 사전 검증을 거치므로 갑작스러운 전원 차단에서도 config.json 이 깨지지 않습니다. 깨졌더라도 .bak 에서 자동 복구합니다.
❤️ 무료 · 오픈소스 · 광고 없음
복잡한 일을 단순하게 만드는 도구입니다. 매일 손으로 반복하던 일이 있다면 한번 등록해 보세요. 첫 자동화 등록까지 정말 5분이면 충분합니다.
도움이 되셨다면 ❤️ 응원해 주세요
작은 금액도 큰 힘이 됩니다. 광고·결제 수수료 없이 직접 전달돼요.