기 타 더 간단(?) WinXShell 작업표시줄 등록을 하여보았습니다
2023.04.20 18:29
종료하였습니다
WinXShell로 작업표시줄에 바로가기 등록하는것을 좀더 간단히 한다고 저 나름대로는 열공을 해고 문제되었던것도 해결을 하고..
운이 좋다고 생각을 했습니다
그런데 더 간단한(?) 방법이 있네요
사용기 쓴것을 정리하던중 지후빠님께서 백업 프로그램으로 만든 cmd에서 볼륨명을 추출할때 사용하던 call 문이 생각이 났습니다
이 방식을 활용했더니..복잡한것들이 간결해졌습니다
고수님의 작품은 초보에게는 배울것이 많은 보물입니다...지후빠님 감사합니다
PinTool나 PinUtil에서 사용하는 방식을 따라하게 되면서 이 형식에 생각이 고정이 되어졌었나 봅니다..
진작에 지후빠님의 방식을 생각을 했다면 좋았을것 같습니다
내용도 간단해서 사진도 2장뿐입니다
1. 시작메뉴와 작업표시줄에 바로가기가 등록이 잘 되었습니다
2. 지난 사용기에서 보다 간단해진것 같지 않나요..바로가기할 파일 경로를 넘겨서 바로 등록을 하는 방식입니다
파일 경로에 공백이 있을수 있어서 무조건 " " 쌍따옴표로 감싸주어야 합니다..
넘겨 받은곳에서는 " " 따옴표를 제거한 경로로 바로가기를 만들기 때문에 경로에 공백이 없어도 " "는 있어야 합니다
한개씩 등록을 하기 때문에...갯수 제한이 없고 등록 갯수에 대한 숫자를 설정할 필요도 없습니다
3. 마무리
작업표시줄에 등록하는 기존에 긴 명령어 대신이 좀더 편하게 할수 있었으면 했는데 추가파일 없이 pecmd.exe 명령어로 할수 있는 이
방식이 그나만 조금 편할것 같습니다
생각할수로 처음부터 이 방식을 생각을 했으면 벌써 끝났을일인데요...엉뚱한곳으로 좀 돌아왔네요
맛있는 저녁식사 시간이 되시길 바랍니다
댓글 [14]
-
qnd 2023.04.20 18:40
-
스마일^_^ 2023.04.20 18:58
수고하셨습니다.
-
상발이 2023.04.20 19:19
수고하셨습니다.
-
하늘소 2023.04.20 20:03
항상 수고가많으십니다.
-
우인 2023.04.20 20:31
2분 고수분들 대단하십니다, 수고많이하셨습니다.
-
매화꽃 2023.04.20 23:26
수고많으셨습니다.
-
지후빠 2023.04.21 13:42
대단하십니다. ^^
점심시간에 아래 왕초보님 글 몇개 보면서 생각나서 잠깐 아이디어 여쭤봅니다.ㅋ~
CALL _StartMenu "%WinDir%\system32\cmd.exe" "%WinDir%\regedit.exe" "%WinDir%\system32\notepad.exe"
CALL _Taskbar "%Programs%\Drvindex.lnk" "%WinDir%\Shutdown.exe" "%Programs%\Chrome.lnk" "%Programs%\ChangeWall.lnk"
Exit
_SUB _StartMenu
ENVI &I=1
LOOP ! $%~%&I% =,
{
EXEC =%ProgramFiles%\WinXShell\WinXShell.exe -code "PinToStartMenu([[%~%&I%]])"
CALC #&I=%&I% + 1
}
_End
_SUB _Taskbar
ENVI &I=1
LOOP ! $%~%&I% =,
{
EXEC =%ProgramFiles%\WinXShell\WinXShell.exe -code "Taskbar:Pin([[%~%&I%]])"
CALC #&I=%&I% + 1
}
_End
만약 이것이 동작한다면, 함수를 하나로 줄이는 것도 해볼 수 있을 것 같습니다.
PECMD 명령어를 잘 몰라서 저녁에 공부해보겠습니다. 물론 왕초보님이 해결해주시면 좋구요. ^^
CALL _PinTo StartMenu "%WinDir%\system32\cmd.exe" "%WinDir%\regedit.exe" "%WinDir%\system32\notepad.exe"
CALL _PinTo Taskbar "%Programs%\Drvindex.lnk" "%WinDir%\Shutdown.exe" "%Programs%\Chrome.lnk" "%Programs%\ChangeWall.lnk" "%CurDir%\_Launch.exe"
Exit
_SUB _PinTo
ENVI &I=2
FIND $%1=StartMenu, ENVI Pin=PinToStartMenu! ENVI Pin=Taskbar:Pin
LOOP ! $%~%&I% =,
{
EXEC =%ProgramFiles%\WinXShell\WinXShell.exe -code "%Pin%([[%~%&I%]])"
CALC #&I=%&I% + 1
}
_End
-
왕초보 2023.04.21 15:22
관심을 가져주시고 좋은 아디이어를 알려주셔서 감사합니다
다른분들이 소스를 보고 바로 이렇게 작업을 하는구나 하고 알수 있을 정로도 간단히 하게되면서 소스가 사용처럼 되었습니다
CALL _StartMenu "%WinDir%\system32\cmd.exe" "%WinDir%\regedit.exe" "%WinDir%\system32\notepad.exe"
이방식은 아마 PinUtil에서도 가능한 방법입니다 옆으로 몇개 나열하면 메모장에서 볼때 넘어가게되어서 여러개인 경우
다시 CALL _StartMenu 를 써야할것 같기도 합니다
CALL _StartMenu "%WinDir%\system32\cmd.exe"
CALL _StartMenu "%WinDir%\regedit.exe"
CALL _StartMenu "%WinDir%\system32\notepad.exe"
이렇게 순서대로 나열이 되어 있으면 등록되는 순서도 위에서 아래로한눈에 볼수가 있고 소스도 기본적인것만 있어서 이런식으로하게 돠었습니다저도 실제 적용했을때 어떨지 바로 테스트를 해보도록 하겠습니다 -
왕초보 2023.04.21 15:47
아래는 메세지 테스트 한것입니다
1. 아래처럼 각각 call을 하는 경우 일단 메세지를 보여주고 Exit로 종료가 됩니다
CALL _StartMenu "%WinDir%\system32\cmd.exe" "cmd.exe"
CALL _Taskbar "%Programs%\Drvindex.lnk" "Drvindex.lnk"
Exit
_SUB _StartMenu
ENVI &I=1
LOOP ! $%~%&I% =,
{
Mess %~%&I%
CALC #&I=%&I% + 1
}
_End
_SUB _Taskbar
ENVI &I=1
LOOP ! $%~%&I% =,
{
Mess %~%&I%
CALC #&I=%&I% + 1
}
_End
2. Call을 한개로 통합해서 하는 경우 이상하게 문제가 발생을 합니다..
CALL _PinTo StartMenu "%WinDir%\system32\cmd.exe" "%WinDir%\system32\Notepad.exe"
CALL _PinTo Taskbar "%WinDir%\system32\cmd.exe" "%WinDir%\system32\Notepad.exe"
Exit
_SUB _PinTo
FIND $%~1=StartMenu,ENVI Pin=PinToStartMenu ! FIND $%~1=Taskbar,ENVI Pin=Taskbar:Pin
ENVI &I=2
LOOP ! $%~%&I%=,
{
Mess %Pin% %~%&I%
CALC #&I=%&I% + 1
}
End
CALL _PinTo StartMenu 과 CALL _PinTo Taskbar 로 2번을 하게되는 CALL _PinTo StartMenu 하고나서 더이 상 메세지나 나오지
않습니다..그리고 작업표시줄에는 pecmd.exe가 계속 남아 있습니다
CALL _PinTo StartMenu 부분 메세지 2개는 잘 보여주나서 메세지가 더이상 나오지 않습니다
작업표시줄에는 pecmd.exe가 계속 남아 있습니다
제가 소스 정리를 잘못한것 같아서 찾아보아다 딱히 어느 부분이 잘못된지를 모르겠습니다
_SUB _StartMenu
EXEC =%ProgramFiles%\WinXShell\WinXShell.exe -code "PinToStartMenu([[%~1]])"
_End
_SUB _Taskbar
EXEC =%ProgramFiles%\WinXShell\WinXShell.exe -code "Taskbar:Pin([[%~1]])"
_End
이 2개를 합쳐보겠습니다 -
왕초보 2023.04.21 16:08
어디에선가 문제가 있었나 봅니다.. 이번에는 메세지를 잘 보여줍니다..실적에 테스트를 해보도록하겠습니다
CALL _PinTo StartMenu "%WinDir%\system32\cmd.exe" "cmd.exe"
CALL _PinTo Taskbar "%Programs%\Drvindex.lnk" "Drvindex.lnk"
Exit
_SUB _PinTo
FIND $%~1=StartMenu,ENVI Pin=PinToStartMenu ! FIND $%~1=Taskbar,ENVI Pin=Taskbar:Pin
ENVI &I=2
LOOP ! $%~%&I%=,TEAM Mess %Pin% %~%&I%|CALC #&I=%&I% + 1
_End
4개 메세지를 잘 보여주고 pecmd.exe로 종료가 되었습니다 -
지후빠 2023.04.21 16:39
윗쪽에 수정한 내용입니다. PE 상에서 테스트는 아직 못했습니다. 저녁에나 가능할 듯... ^^
CALL _PinTo Start "%WinDir%\system32\cmd.exe" "%WinDir%\regedit.exe" "%WinDir%\system32\notepad.exe"
CALL _PinTo Task "%Programs%\Drvindex.lnk" "%WinDir%\Shutdown.exe" "%Programs%\Chrome.lnk" "%Programs%\ChangeWall.lnk" "%CurDir%\_Launch.exe"
Exit
_SUB _PinTo
ENVI &I=2
FIND $%1=Start, ENVI Pin=PinToStartMenu! ENVI Pin=Taskbar:Pin
LOOP ! $%~%&I% =,
{
EXEC =%ProgramFiles%\WinXShell\WinXShell.exe -code "%Pin%([[%~%&I%]])"
CALC #&I=%&I% + 1
}
_End
-
왕초보 2023.04.21 17:24
사용기를 쓰는 동안에 글을 남겨주신것 같습니다
[첨부] WinXShell 바로가기 지후빠님 아이디어를 적용하여 보았습니다
https://windowsforum.kr/review/19282563
댓글을 보면서 하나 놓친 부분을 찾았습니다..저는 이렇게 했습니다
FIND $%~1=StartMenu,ENVI Pin=PinToStartMenu ! FIND $%~1=Taskbar,ENVI Pin=Taskbar:Pin
여기에서 StartMenu Taskbar 아닌경우에는 sub를 종료하는것은 넣어아 하는데 넣지 않았습니다
실수로 StartMenu Taskbar 가인 경우 sub를 종료합니다
FIND $%~1=StartMenu,ENVI Pin=PinToStartMenu ! FIND $%~1=Taskbar,ENVI Pin=Taskbar:Pin ! EXIT _Sub
-
지후빠 2023.04.21 18:26
수고하셨습니다. ^^
-
광풍제월 2023.04.21 20:41
수고하셨습니다.
수고하셨습니다,
감사합니다.^^b