티스토리 뷰
요약은 맨 아래에 있습니다.
윈도우 8이후로 윈도우 스토어 앱이 생겼는데요,
윈도우 10에 와서는 UWP환경이 좋아져서 요즘 메신저나 간단한 앱들은 스토어용 앱을 사용하고 있습니다.
스토앱을 잘 사용 안할때는 몰랐는데, 자주 사용하다보니 저는 불편한점이 하나 생겼습니다.
바로 앱 URL을 가져올수 없는점인데요, 키보드 단축키를 사용하는데, 스토어앱을 URL로 넣을 방법이 없었습니다.
구글에 "windows store app path"으로 검색을 해보니 첫 글에서 WindowsApp폴더에 앱들이 있다고 알려줍니다.
처음엔 접근 권한 문제가 있으니, 권한을 부여하고 폴더 안으로 들어갑니다.
(숨김 폴더로 되어있는 WindowsApps 폴더)
(접근 권한이 없다)
(WindowsApps폴더를 우클릭-속성을 선택해 보안탭을 누른 화면)
(보안탭에서 고급을 누르면 나오는 화면)
(소유자 변경을 눌러 윈도우 계정 이름을 입력하는 화면)
(성공적으로 WindowsApps 폴더에 들어와보니 맨 아래에 있는 텔레그램 앱 폴더)
(폴더안에 exe파일이 있다!)
exe파일을 찾았지만, 이대로 실행이 안되었습니다... ㅜㅜ
그래서 아까 검색했던 키워드의 두번째 글을 보면,
원노트를 실행하는데, "explorer.exe shell:AppsFolder\"에서 폴더 이름 중 버전, 아키텍처를 빼는듯 합니다. 그런데, 마지막에 !microsoft.onenoteim은 어디서 나온건지 알수가 없어서 계속 검색했습니다.
"윈도우 스토어 앱 exe 실행"으로 해보니 첫번째 글에서 github 프로젝트 하나를 알려줍니다.
해당 프로젝트의 release에 있는 파일을 받아 실행하니 제가 원하던 정보가 드으디어 나옵니다.
텔레그램은 !Telegram.TelegramDesktop.Store를 붙여서
"shell:AppsFolder\!Telegram.TelegramDesktop.Store"을 실행하면 잘되는데, 규칙성이 도통 없어보이는군요. 매번 이 프로그램을 쓸수도 없는 코드 읽기를 시도해봤습니다.
남의 코드를 보는게 두렵지만, 찾아보니 XML로된 앱 매니페스트를 파싱하는게 확인되었습니다.
고마운마음에 Star를 주고, 아까 모른체 올렸던 폴더 이미지에 선택되있던 AppxManifest.xml을 메모장으로 열어봅니다.
Application Id에 아까 봤던 Telegram.TelegramDesktop.Store가 보입니다. 이제 완벽한 결론이 났군요.
영어로 검색해도 안나오던터라, 영어도 같이 적어봅니다.
윈도우 스토어앱 실행경로 만드는법.
1. WindowsApps폴더에서 해당 앱 폴더 이름을 복사한다.
ex) TelegramMessengerLLP.TelegramDesktop_1.2.17.0_x64__t4vj0pshhgkwm
2. 버전, 아키텍처 부분을 지운다.
ex) TelegramMessengerLLP.TelegramDesktop_t4vj0pshhgkwm
3. 폴더안의 AppxManifest.xml을 열어 Application Id 항목을 복사한다.
ex) Telegram.TelegramDesktop.Store
4. "shell:AppsFolder\" + [2번결과] + "!" + [4번결과]를 이어붙인다
ex) explorer.exe shell:AppsFolder\TelegramMessengerLLP.TelegramDesktop_t4vj0pshhgkwm!Telegram.TelegramDesktop.Store
(explorer.exe는 굳이 앞에 입력 안해도 됩니다.)
5. 실행, cmd 스크립트 등에 사용한다.
Now, you can run a app with this sentence in somewhere like script
How to make runnable URL of windows store app in CMD, Bat, Run or etc.
1. In WindowsApps folder, find app folder you want and copy folder name.
ex) TelegramMessengerLLP.TelegramDesktop_1.2.17.0_x64__t4vj0pshhgkwm
2. Delete version, architecture letters.
ex) TelegramMessengerLLP.TelegramDesktop_t4vj0pshhgkwm
3. In App's folder, open AppxManifest.xml then copy "Application Id" field.
ex) Telegram.TelegramDesktop.Store
4.Concatenate "shell:AppsFolder\", result of 2, "!", result of 4.
ex) explorer.exe shell:AppsFolder\TelegramMessengerLLP.TelegramDesktop_t4vj0pshhgkwm!Telegram.TelegramDesktop.Store