🌐 Live (English): www.coding-now.com/en/snaplaunch
Windows 바탕화면/폴더 빈 공간 우클릭 메뉴에 자주 쓰는 프로그램 즐겨찾기를 추가하는 포터블 도구. 관리자 권한 불필요, 단일 EXE, 한/영 지원.
바탕화면 우클릭
└── 🔧 자주사용하는 툴 ▶
├── ⭐ Notepad++
├── ⭐ VS Code
├── ⭐ 계산기
├── ──────────────
├── ➕ 툴 추가/관리...
└── ❌ Uninstall
👉 https://cflab2017.github.io/Tool_SnapLaunch/ ← 클릭
우클릭 → "자주사용하는 툴" → 앱 실행 흐름이 12 초 주기로 자동 반복되고, 관리 GUI 의 컬러 버튼·변경 행 강조·죽은 경로 표시도 한 페이지에서 확인할 수 있습니다.
| 버전 | 배포일 | 설치 파일 | 소스코드 |
|---|---|---|---|
| v1.0.0 | 2026-05-27 | 📥 snap-launch.exe | 📦 Source (zip) · 📦 Source (tar.gz) |
전체 릴리즈 이력: Releases 페이지
snap-launch.exe를 원하는 폴더(예:C:\Tools\SnapLaunch\) 에 둡니다.- 더블클릭으로 관리 창을 엽니다.
- 자주 쓰는 프로그램을 등록 → "📥 마우스 오른쪽 메뉴 설치" 클릭.
- 바탕화면/폴더 빈 공간을 우클릭하여 메뉴 확인.
🛡 백신이 막을 경우: 코드 서명을 하지 않은 Rust 빌드라 SmartScreen 이 가끔 경고할 수 있습니다. "추가 정보 → 실행" 으로 통과시키거나, 소스에서 직접 빌드하세요.
- 포터블 — 모든 설정이 EXE 옆
snap-launch-tools.json파일 하나로 관리. USB 에 담아 옮겨도 동작. - 관리자 권한 불필요 —
HKEY_CURRENT_USER만 사용. - 단일 실행 파일 — Rust + MSVC 정적 링킹으로 약 3.4 MB EXE. 별도 DLL/런타임 없음.
- 콘솔 창 없음 —
windows_subsystem = "windows"로 모든 모드에서 검은 창이 뜨지 않음. - 한국어 / English — GUI 상단 라디오로 즉시 전환. 우클릭 메뉴 텍스트도 같이 따라옴.
- 의미별 컬러 버튼 — 녹(주요)·빨(파괴)·파(동기화)·슬레이트(네비)·틸(유틸)·앰버(리셋)로 한눈에 구분.
- 변경 행 시각화 — 추가/편집/순서변경한 행이 옅은 파랑 + ● 으로 강조 → 메뉴 갱신 시 클리어.
- 죽은 경로 감지 — 등록된 EXE 가 사라지면 빨간 ⚠ 로 표시되고, 컨텍스트 메뉴 클릭 시 제거 여부를 묻습니다.
- 모든 위젯 툴팁 — 버튼/필드/라디오 위에 마우스 올리면 한/영으로 설명.
- 비상 복구 배치 파일 — 메뉴 설치 시 EXE 옆에
SnapLaunch_복구.bat자동 생성 → snap-launch.exe 가 삭제돼도 메뉴 정리 가능.
snap-launch.exe실행 → 관리 창 열림- "📁 찾아보기" 로 EXE 등록 (또는 EXE 를 창에 드래그 앤 드롭)
- "📥 마우스 오른쪽 메뉴 설치" 클릭
- 바탕화면/폴더 빈 공간에서 우클릭하여 확인
- 컨텍스트 메뉴의 "툴 추가/관리..." 또는
snap-launch.exe직접 실행 - 추가/삭제/순서 변경 후 옆쪽 "🔄 메뉴 갱신" (변경 보류 시 파란색으로 강조)
- 컨텍스트 메뉴의 "Uninstall" 항목 (가장 간편)
- 또는 관리 창의 "📤 Uninstall" 버튼
- 또는 CLI:
snap-launch.exe uninstall
snap-launch.exe 자체가 사라졌다면 EXE 가 있던 폴더의 SnapLaunch_복구.bat 을 더블클릭하세요.
⚠ 권장: EXE 를 삭제하기 전에 반드시 먼저 "Uninstall" 을 실행하세요. 양쪽 모두 사라지면 같은 폴더에 snap-launch.exe 를 다시 받아
uninstall을 실행해야 합니다.
| 명령 | 동작 |
|---|---|
snap-launch.exe |
관리 GUI 열기 |
snap-launch.exe install |
컨텍스트 메뉴 등록 |
snap-launch.exe uninstall |
컨텍스트 메뉴 제거 |
snap-launch.exe launch <tool_id> |
등록된 툴 실행 (컨텍스트 메뉴가 내부적으로 사용) |
snap-launch.exe launch-manage |
관리 GUI 열기 (컨텍스트 메뉴 "툴 추가/관리..." 가 사용) |
모든 모드에서 메시지는 tools.json 에 저장된 언어 설정(ko / en)을 따라갑니다.
EXE 옆 snap-launch-tools.json:
{
"language": "ko",
"tools": [
{
"id": "tool_001",
"name": "Notepad++",
"path": "C:\\Program Files\\Notepad++\\notepad++.exe",
"args": "",
"icon_path": "",
"order": 1
},
{
"id": "tool_002",
"name": "계산기",
"path": "calc.exe",
"args": "",
"icon_path": "",
"order": 2
}
]
}language:"ko"또는"en"path: 절대 경로뿐 아니라 PATH 에 있는 명령(calc.exe,notepad등)도 지원icon_path가 비어 있으면path의 EXE 아이콘이 자동 사용
요구: Rust stable (MSVC toolchain, Windows).
cargo build --release
# 결과: target\release\snap-launch.exe.cargo/config.toml 에서 +crt-static 를 설정하므로 빌드된 EXE 는 별도 Visual C++ 런타임이 필요 없습니다.
아이콘을 재생성하려면 (한 번만):
python tools/gen_icon.pyeframe/egui— GUIwinreg— Windows 레지스트리rfd— 네이티브 파일 선택 다이얼로그windows—MessageBoxWserde/serde_json— 설정 직렬화winresource(build) — EXE 아이콘/메타데이터 임베드
컨텍스트 메뉴는 다음 두 레지스트리 위치에 cascading 서브메뉴로 등록됩니다:
HKCU\Software\Classes\DesktopBackground\Shell\SnapLaunch ; 바탕화면 우클릭
HKCU\Software\Classes\Directory\Background\Shell\SnapLaunch ; 폴더 빈 공간 우클릭
각 툴은 shell\aaa_NNN_<id> 하위 키로 등록되고, 클릭 시 snap-launch.exe launch <id> 가 호출되어 해당 프로그램을 Command::spawn() 으로 실행한 뒤 즉시 종료합니다 (백그라운드 상주 없음).
"툴 추가/관리..." 와 "Uninstall" 항목은 zzz_manage / zzz_uninstall 키로 등록되며, 관리 항목에 CommandFlags=0x20 (ECF_SEPARATORBEFORE) 를 두어 그 위에 자동 구분선이 그려집니다.
src/
├── main.rs CLI 인자 분기
├── app.rs eframe 앱 + 한글 폰트 자동 로드 + 언어 라디오 + 창 제목 조립
├── i18n.rs Language enum + Strings 테이블 (KO/EN)
├── launcher.rs launch <id> 처리 + 실행 실패 시 항목 제거 제안
├── msgbox.rs MessageBoxW 래퍼 (info/error/confirm)
├── path_util.rs 툴 경로 유효성 검사 (PATH 탐색 포함)
├── config/
│ ├── mod.rs
│ └── tools.rs tools.json 읽기/쓰기, Tool/ToolsConfig
├── registry/
│ ├── mod.rs 키 경로 상수, 복구 배치 경로
│ ├── install.rs cascading 서브메뉴 작성 + 복구.bat 생성 + 언어 적용
│ ├── uninstall.rs 키 트리 + 복구.bat 정리
│ └── status.rs 설치 상태 / 등록된 EXE 경로 조회
└── ui/
├── mod.rs
├── style.rs 색상 팔레트와 Button 팩토리 (primary/danger/info/nav/utility/warning)
├── tool_list.rs 툴 목록 표 + 죽은/변경 행 색칠 + 위/아래 + 메뉴 갱신
├── tool_form.rs 새 툴 추가 폼 + 파일 선택
└── control_bar.rs 설치/제거 버튼 + 상태 라벨 + 경로 불일치 경고
Joseph.han · coding-now.com
MIT