제목 : 선*님 작품에서 메세지 관련을 다른 방식으로 하여 보았습니다..
왕초보열정을 가지시고 완성하신 작품을 선물로 주신 선*님께 감사드립니다..
항상 좋은일만 있으시길 바랍니다..
선*님께서 열공중이시죠..선물로 주신 작품에서 RSPASC1.47로 포터블 프로그램을 설치할때나...VGA드라이버 설치시에 나오는 메세지를 VBS를
활용하셔서 보여주고 계십니다
메세지관련이나 cmd파일 숨김 실행을 위해서 VBS를 활용하시면서 관련파일들이 많은것 같아서 VBS 대신에 메세지를 보여주는 프로그램을 별도로
만들고 cmd에서 실행되는 과정을 pecmd.exe의 ini에서 진행하는것으로 하여 보았습니다
처음에는 VBS 대신에 하이이잌님께서 한글화를 해주신 메세지를 보여주는 MessageBox_KOR.exe 를 활용을 해볼까 했었습니다만 메세지의 경우
메세지를 보여주는 동안 진행이 멈추게 되고...작업 시작후 완료할때까지 메세지를 계속 보여줄수가 없어서 별도의 프로그램을 만들어 활용을 해보게
되었습니다
PE에는...pecmd.exe가 포함이 되어 있어서..작업과정을 cmd에서 진행을 하는것보다는 ini로 진행행하는것이 좀더 편할때가 있습니다
여러개 파일을 ini 한개의 파일로 진행을 하는 사람도 있구나 하는 정도로 보아 주십시요
고수님들께서는..이미 다 아시는 내용이셔서 재미 없습니다..그냥 통과하여 주십시요
1. RSPASC1.47에서 Apps.wim 압축해제시 나오는 VBS 메세지입니다....
2. 설치가 완료가 되었습니다...
3. VBS 메세지가 보이게 되는 과정을 찾아 보았습니다... PETools 폴더의 Mount 폴더에 RSPASC1.47 파일이 있습니다.. 아쉽게도 RSPASC1.47 파일
의 경우..바이러스 검출이 되어서..바이러스 프로그램에서 삭제가 될수가 있습니다...저의 경우 RSPASC1.47 파일을 boot.wim안에 넣어서 사용을 하고
있습니다..
RSPASC1.47.ini 외에도 cmd. ini, vbs 여러 종류의 파일이 보이고 있습니다.. 바탕화면 아이콘에 사용되는 바로가기 파일도 있습니다
맨처음 MountSetEX.vbs 가 실행이 되네요..
4. MountSetEX.vbs에서 내용을 빼먹었네요.. MountSetEX.cmd를 숨김실행해 주고 있습니다
Set WinScriptHost = CreateObject( "WScript.shell" )
WinScriptHost.Run Chr(34) & "MountSetEX.cmd" & Chr(34), 0
Set WinScriptHost = Nothing
MountSetEX.cmd 에서 RSPASC1.47.exe 실행을 시킨후 mpg123.exe를 실행을 하고 있습니다
마지막으로 MountSetEX.ini를 로드하고 있습니다
5. MountSetEX.ini 에서 프로그램 폴더에 있는 프로그램 바로가기를 만들고 나서 POPUP1.VBS 를 실행하고 있습니다.,.
6. system32 폴더에 POPUP1.VBS와 비슷한것이 5개가 있네요..
POPUP1.VBS 에서 다시..notice1.cmd 파일을 숨김실행하고 있습니다..
7. notice1.cmd 와 비슷한 파일들이 5개가 있습니다..
notice1.cmd에서..VBS를 temp 폴더에 만들고 만든 VBS를 실행시켜서 "포터블 앱 로드중..." 이란 메세지를 보여주고 있습니다..temp 폴더에
있는 VBS 파일을 삭제하는것으로 완료가 되었습니다
진행과정을 보면 cmd 파일 실행을 위해서 VBS가 사용되고 cmd 파일에서 VBS 파일을 만들어서 VBS 메세지를 보여주는 방식으로 진행이 되고
있습니다..
8. PETools\Mount 폴더에 있는 마운트.lnk 파일을 삭제하고 위해서 pecmd.ini에 아래처럼 추가하였습니다
IFEX Y:\PETools\Apps.wim,LINK %Desktop%\마운트,%WinDir%\System32\pecmd.exe,Load "%ProgramFiles%\RSPASC1.47\MountSetEX.ini",%ProgramFiles%\RSPASC1.47\RSPASC1.47.exe
cmd와 VBS 대신에 MountSetEX.ini를 사용하기 위해서 Y:\PETools\Apps.wim 파일이 있은 경우에만 MountSetEX.ini 바로가기 파일을 바탕화면에
만들도록 하였습니다
9. PETools\Mount 폴더가 USB 등에 있는 경우 혹시 윈도우에서 바이러스 프로그램에서 RSPASC1.47.exe를 삭제할수가 있어서 안전한 boot.wim
안에 아래처럼 넣었습니다..
cmd, vbs 파일 관련내용은 MountSetEX.ini에 모두 정리를 해서 넣었습니다..메세지 실행 프로그램은 system32폴더에 있습니다
10. 프로그램 폴더에 있는 프로그램 바로가기를 만드는 MountSetEX.ini 에 MountSetEX.cmd 에 있는 내용들을 넣었습니다
RSPASC1.47.exe 실행시 시간이 걸리기 때문에...프로그램 폴더에 있는 프로그램들 바로가기를 먼저 만들도록 순서를 바꾸어 놓았습니다
11. MountSetEX.cmd 내용을 정리한것입니다
메세지를 보여주고..이 메세지는..RSPASC1.47.exe 작업이 완료될때까지..보여집니다.. 폼 배경화면이나 폰트 색상이나..아이콘도 지정할수 있도록
만든것입니다
메세지가 보여지는 동안 소리도 나오게하고...RSPASC1.47.exe 작업도 진행이 됩니다. RSPASC1.47.exe 실행에는 "=" 옵션이 사용되었습니다
기존 메세지가 있는 경우..다시 실행을 하면..기존 메세지를 강제종료 하여 줍니다..그래서..작업 완료후 메세지가 종료되는 과정으로 진행이 됩니다
12. MountSetEX.ini 경로에는 공백이 있어서 " " 이렇게 따옴표가 있어서..정상 실행이 됩니다..
13. MountSetEX.ini 가 로드가 되었습니다..바탕화면에 바로가기를 먼저 만들고 아래 메세지를 보여주고 있습니다..
14. 소리도 나오고ㅓ RSPASC1.47.exe가 진행중입니다...RSPASC1.47.exe 작업이 완료될때까지..메세지는 계속 있습니다.
컴퓨터 마다 성능이 달라서 진행시간이 제각각이이서..시간 지정방식으로 하면...정확히 RSPASC1.47.exe 작업이 완료되는 시간하고 맞출수가
없어서 이런 방식을 사용을 하게되었습니다..
15. RSPASC1.47.exe 작업이 모두 완료가 되면 메세지가 종료가 됩니다..,
16. Export 폴더에도 RSPASC.exe가 있고...cmd, VBS, lnk 파일이 있습니다..
RSPASC.exe 파일의 경우 이미 프로그램 폴더에 있기 때문에 이것을 활용하면 되어서 Apps.wim 파일에 Export 폴더가 없어도 가능할것 같습니다
17. RSPASC1.47 폴더에 아래처럼 Export 용 ini를 미리 만들어 놓고...MountSetEX.ini에서 복사후..바로가기를 새로 만들어 주면..됩니다
그러면. Export 폴더가 따로 필요하지 않아서 관리하기가 편합니다..대신에..여기에도 Export용 pecmd.exe ini를 만들어 놓으면 됩니다
18. 엉뚱하게..메세지 프로그램을 만들면서 DesktopInfoMsg 문제점이 해결이 되었습니다.. 지인분이 조언으로..배경화면 상관없이..BIOS,UEFI 글자가
보이도록...2초보다..글자 색을 흰색, 검정색 토글로 하였습니다..레인미터가 제일 좋은데..이렇게 하여보았습니다... 글자가 검정색이어서 안보이네요
19. 2초후 흰색으로 보입니다.
20. 흰색배경이어서 흰색 글자가 안보입니다..
21. 검정 글자로 바꾸었습니다..깜박이는것처럼 보이네요..
22. 투명배경에서 글자가 선명하게 보일려면..굴림폰트 파일이 13MB 여야 합니다..저용량 PE에서넌..3MB 짜리 굴림이 사용되는데...이때에는
굴림이 아니라..맑은 고딕이 적용이 되어서 글자가 선명하지 않습니다
23. 저용량에서 글자가 선명하게 보입니다..굴림폰트가 아니라 다른 폰트가 적용되어서 그렇습니다..메세지 프로그램을 만들다가 우연찮게 이것을 해결
을 하게 되었습니다..글자는 굴림 폰트가 확실히 보기가 좋네요..
24. 굴림폰트가 3MB짜리여서..메세지에도 맑은 고딕이 적용이 되었습니다.. 저용량 PE가 부팅이 빠르고 가벼워서 좋지만..이런 단점도 있습니다
25. VGA 드라이버 설하는 폴더에도 cmd,vbs 파일들이 있습니다...이것도 ini 정리를 하면 간단해 질것 같습니다..
1.cmd파일이 현재..Drivers 폴더에 있어서..아래처럼 모든 드라이브를 검색할 필요는 없을것 같습니다..여기에서 구한 DRV 변수가 VBS 메세지를
실행하는데 활용이 되어 있기는 합니다만...pushd %~dp0 가 실행이 되어 있어서..그냥 VBS를 실행되고 될것 같기도 합니다
26. MountSetEX.ini 에 MessageBox_KOR.exe를 활용하여 본 경우 입니다.. cmd에서 VBS를 만들후..메세지를 보여주는것보다는 이것이 더 간편
할수도 있을것 같습니다..
메세지여서 어쩔수 없이..잠시 보여주고..종료후...다른 작업이 완료후에 다시 메세지를 보여줄수 밖에 없습니다..
27. 작업이 시작된다고 메세지를 보여주고 있습니다..
28. 메세지 자동 종료후..RSPASC1.47.exe 작업등이 진행이 되고 있습니다..
29. RSPASC1.47.exe 작업 완료후..완료 메세지를 보여주고 있습니다...
30. 마무리
선*님께서 작품을 만드시면서...많은것을 고려해셔서 여러가기 기능들을 넣으셨을것입니다...개인적으로 pecmd.exe용 ini를 많이 활용하고 있어서
cmd와 vbs 파일 대신에..ini를 활용하여 보았습니다
PE를 활용하는 방식은 다양한것입니다....많은 방법중에서 ini를 이렇게 활용하는 사람도 있구나 하는 정도로만 보아 주십시요
선*님께서..열공하고 계시죠...항상 응원하고 있습니다..
화이팅입니다..
오늘도 고생 많으셨습니다..
편안하신 시간 되시길 바랍니다.
댓글 [12]
선우
- 2020.05.21
- 17:32:43
언제나 명쾌한 강좌 감사히 잘 보았습니다 올려주신 방법대로 열공하여 언젠간 꼭 PE에 적용 해보겠습니다.
부족한 자료를 풀어주시고 새로운 방법을 올려 주셔서 감사합니다 따라 해보려고 해도 잘 안되겠지만
언젠간 꼭 도전하여 성공 해보고 싶습니다 노고가 크셨습니다 왕사부님.^^*
신은
- 2020.05.21
- 17:50:46
굉장한 내용의 포스팅이군요.
어마무시합니다. 전 봐도 뭐가 뭔지 쉽게 와 닿지 않아 포기했습니다.
여튼 다시 돌아 오셔서 활동해 주시니 참 좋습니다.
또한 윈포 회원의 한 사람으로써 고맙습니다.
건강하시고, 매일매일 행복하십시오. 꾸벅 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
수고하셨습니다~