PowerPro - 탐색기에 특정 폴더 바로가기

2006.11.23 22:14 컴퓨터/유틸리티

PowerPro 기능 중에 제일 많이 사용하는 것이 폴더를 선택할 때 도움을 받는 것입니다. 탐색기가 실행되면 자주 사용하는 폴더로 바로 이동하게 해주는 패널이지요. 저는 이 기능 하나 때문이라도 PowerPro를 사용하고 있습니다.

한가지 안쉬운 것은 한글이 들어 있는 폴더는 안됩니다. 이전의 열기/저장 대화상자 글에서처럼 처리하면 한글 명 폴더 사용이 가능하지만, 클립보드 사용 때문에 다른 방식으로 하다 보니 한글 폴더 명은 문장이 깨지는 수가 생깁니다.....^^

Configure PowerPro

그림 순서와 그림 안에 있는 설명을 참고하세요.

c=ExplorerWClass,c=CabinetWClass 를 넣는 이유는 앞으로 이 Command List 는 윈도우 탐색기가 실행되었을 때만 화면에 출력하라는 뜻입니다.

언제 출력할지를 결정했으니 (1) 각 드라이브 별로 폴더 정보를 출력하고, (2) 드라이브 별로 자주 사용하는 폴더를 등록하겠습니다. 먼저 드라이브 정보 등록입니다.

같은 방법으로 자주 사용하는 폴더를 등록합니다. "Enter command@explorer" 은 하단에 다시 설명을 드립니다. "Command parameters" 에는 자주 사용하는 폴더의 실제 경로명을 입력합니다.

위의 그림 설명에 따라 반복하여 자주 사용하시는 폴더를 등록하시면 됩니다. 이제 스크립트 파일의 내용입니다.

@explorer    ;; 탐색기에서 자주 가는 폴더에 대한 처리
 local dirDest = arg(1) ;; command 의 첫 번째 인수를 변수 dirDest 에 대입

 dirDest = replacechars( dirDest, ?"\", ?"\\") ; \ 문자를 \\로 모두 바꿈

 win.keys("%d")

 wait.for(200)

 win.keys( "&(dirDest){en}") ;; 이름 입력 칸에 클립보드의 내용을 붙여 넣기 후

 ;; 엔터키를 눌러라

 quit ;;
위의 코드를 PowerPro 의 scripts 폴더 안에 opensavedlg.powerpro 로 저장합니다. 이제 탐색기를 실행하시고 올바르게 작동되는 지만 확인하면 되겠습니다. ^^ 툴바의 위치는 이전의 열기/저장 대화상자 글을 참고하십시오.
이 댓글을 비밀 댓글로
    • aperire
    • 2006.11.24 00:57
    저는 즐겨찾기에 폴터를 추가한다눙;;;;
    (희안하게 즐겨찾기엔 인터넷 주소만 등록되는게 아니더군욥;; ㅋㅋ)
    • 안재희
    • 2006.11.24 19:28
    저는 FlyExplorer 쓰고있는데요, 거기에도 메뉴바에 폴더추가기능이 있어서 아주 편리하던데요^^
    • 코따미
    • 2006.12.01 19:35
    스크립트의 중간에..
    \") ; \ 문자를 \\
    이 부분에서 에러네요. ㅎㅎ ;; 로 바꿔야 하겠습니다.

    그리고..
    http://cafe.naver.com/powerpro/1884 에 보시면.. 한글처리에 관한 내용이 있는데요.. 한번 시험해 보시길..

    @explorer ;; 탐색기에서 자주가는 폴더에 대한 처리
    local dirDest = arg(1) ;; command 의 첫번째 인수를 변수 dirDest 에 대입

    win.keys("%d")
    wait.for(200)

    local sString,wString,nSize

    sString=dirdest

    nSize=dll.call("MultiByteToWideChar|ui ui s i s i",0,0,"sString",-1,"wString",0)
    dll.call("MultiByteToWideChar|ui ui s i s"++nSize*2++" i",0,0,"sString",-1,"wString",nSize)
    nSize--

    local ptr=dll.get_pointer("wString")
    local ki=dll.create_array(7*2*nSize,"i")

    for(local i=0;i<2*nSize;i++)
    ki[1+7*i]=1
    ki[3+7*i]=4+i%2*2
    dll.call("RtlMoveMemory|ui ui ui",ki.get_pointer(2+7*i)+2,ptr+i/2*2,2)
    endfor

    dll.call("SendInput|ui a* i",2*nSize,ki,28)

    win.keys( "{en}") ;; 엔터키를 눌러라
    quit

    이렇게 해서 사용해 보세요..
    한글의 경우 에러가 나지 않는데..
    잘 될런지는 모르겠습니다만..
    • 코따미
    • 2006.12.01 19:38
    수정을 할 줄 몰라서요..
    ") 가 웃음으로 표시되나 봅니다.

    @explorer ;; 탐색기에서 자주가는 폴더에 대한 처리
    local dirDest = arg(1) ;; command 의 첫번째 인수를 변수 dirDest 에 대입

    win.keys("%d" )
    wait.for(200)

    local sString,wString,nSize

    sString=dirdest

    nSize=dll.call("MultiByteToWideChar|ui ui s i s i",0,0,"sString",-1,"wString",0)
    dll.call("MultiByteToWideChar|ui ui s i s"++nSize*2++" i",0,0,"sString",-1,"wString",nSize)

    nSize--

    local ptr=dll.get_pointer("wString" )
    local ki=dll.create_array(7*2*nSize,"i" )

    for(local i=0;i<2*nSize;i++)
    ki[1+7*i]=1
    ki[3+7*i]=4+i%2*2
    dll.call("RtlMoveMemory|ui ui ui",ki.get_pointer(2+7*i)+2,ptr+i/2*2,2)
    endfor

    dll.call("SendInput|ui a* i",2*nSize,ki,28)


    win.keys( "{en}" ) ;; 엔터키를 눌러라

    quit
    • 코따미
    • 2006.12.01 20:11
    에효.. 지울 수도 없고, 고칠 수도 없네요.
    패스워드를 넣지 않았더니..
    약간의 시간지연, 또는 조정.. 정도가 필요할 듯 하네요..


    @explorer ;; 탐색기에서 자주가는 폴더에 대한 처리
    local dirDest = arg(1) ;; command 의 첫번째 인수를 변수 dirDest 에 대입

    win.keys("{to *}{w1}%d" )
    wait.for(50)

    local sString,wString,nSize

    sString=dirdest

    nSize=dll.call("MultiByteToWideChar|ui ui s i s i",0,0,"sString",-1,"wString",0)
    dll.call("MultiByteToWideChar|ui ui s i s"++nSize*2++" i",0,0,"sString",-1,"wString",nSize)

    nSize--

    local ptr=dll.get_pointer("wString" )
    local ki=dll.create_array(7*2*nSize,"i" )

    for(local i=0;i<2*nSize;i++)
    ki[1+7*i]=1
    ki[3+7*i]=4+i%2*2
    dll.call("RtlMoveMemory|ui ui ui",ki.get_pointer(2+7*i)+2,ptr+i/2*2,2)
    endfor

    dll.call("SendInput|ui a* i",2*nSize,ki,28)
    wait.for(50)

    win.keys( "{en}" ) ;; 엔터키를 눌러라

    quit
    • 와! 감사합니다. 글 올리는 것이 얼마나 힘드신데, 이렇게
      옳바르게 수정해서 올려 주셔서 감사합니다.

      dll.call("SendInput|ui a* i",2*nSize,ki,28)
      에서 에러가 나는데, 이유를 모르겠네요.

      네이버의 PowerPro 카페에서 몇 시간을 검색해 봤는데,
      해답을 못 찾겠어요.

      그리고 네이버 카페 안에는 있는 검색 기능은 좀 너무하네요.
      검색 기능도 기능이지만 게시판으로 운영하기에는 불편한 점이
      너무 많은 것으로 생각됩니다.

      고맙습니다. :)
    • 코따미
    • 2006.12.02 15:43
    에효..
    지금 게시판 그대로 복사해서
    시험해 봤습니다만.. 저는 잘 됩니다만.. 혹시나 하고, dll 플러그인을 최신버전으로 바꿔보시면..

    ㅎㅎㅎ 그리고 DLL플러그인은 하나도 모릅니다.
    그냥 줏어먹는 정도입니다. ㅎㅎㅎㅎ

    카페게시판에 있는 그대로를 복사한 것이거든요.
    참.. 에효 입니다.

    그런데, 한글에서도 에러없이 그대로 적용되더군요.
    잘 되면 좋았을텐데요..

    말씀 그대로 카페 게시판이 좋기는 한데.. 검색은 쥐약이죠.
    덧글 검색이나마 되면 좋으련만..
    • 맞아요. 덧글에 얼마나 유용한 정보가 많은데요.
      네이버 블로그나 카페나 글 쓰기 참 힘듬에도
      그 고생을 마다하지 않고 글을 올려 주시는 선배님들께도
      새삼 고마움을 느낌니다. :)
      • 코따미
      • 2006.12.03 00:22
      음.. DLL 플러그인은
      버전에 따라서 실행되고 안되고 가 결정될 수 있습니다.
      최신 버전으로 일단 변경해 보시고.. ㅎㅎㅎ
      http://cafe.naver.com/powerpro/1726
      에 있는 091 버전이 최신 버전입니다.

      날짜는.. 2006.10.26 일자 버전이네요.

      혹시나 하고 바꿔 보시면..
  1. http://cafe.naver.com/powerpro.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=558
    로 함가보겠어요? 한글안깨지는법이라네요
    • 호~....이 PowerPro는 그 작은 몸이, 무슨 프로그래밍 언어도 아니고,
      그렇다고 아니다라고 할 수 없고....참~
  2. 그부분에대해서는 엔트리님 말씀이있었습니다.
    "자기가 필요한거만 습득해서 쓰면된다"
    전이말에 올인~!
    • gweon0
    • 2006.12.12 19:33
    매번 좋은 자료 좋은 소식 접하다보니 고맙기도 하고, 여기를 통해 powerpro를 접하게 되었는데...
    저 혼자만 알기도 그렇고 같이 사용하면 더 좋을것 같아 제가 사용하는 스크립트를 올립니다.
    keys로 전달하는 메시지가 제대로 동작하지 않아 여기 저기 찾아 헤메면서 이렇게 수정했습니다.
    au3라는 plugin을 사용하는데... 한글이 깨지지도 않고 괜찬네요.

    원본은
    http://cafe.naver.com/powerpro/1875

    원본을 간소하게 수정했습니다.
    제가 사용하는 PC 사양이 워낙 낮아서...^^
    아마도 원본은 open/save dialog에 사용하면 편리할 것 같네요.
    현재까진 잘되네요... 누군가 더 좋은 아이디어나 내용 있으면 갈켜주세요.

    @explorer
    static box_caption
    box_caption = win.caption("active") ;;현제 캡션 추출
    ;;win.sendkeys("{to *}{w1}%n") ;; 파일명 콤보로 포커스를 옮김, 파일명이 있을 경우 자동선택됨
    au3.ControlFocus(box_caption, "", "Edit1")
    local FileName = win.gettext(win.getfocus()) ;; 파일 콤보에서 기본 파일명을 얻어옴
    wait.for(10)
    au3.ControlSetText(box_caption, "", "Edit1", arg(1)) ;; 인수는 경로, 경로 붙여넣기
    wait.for(10)
    do("keys","{to *}{w1}{enter}")
    ;;win.sendkeys("{to *}{w1}{enter}")
    quit
    • gweon0
    • 2006.12.12 19:38
    여기선
    쌍따옴표 + 오른쪽괄호 => ")
    ") 이렇게 나오는 부분은 윙크 표시를 )로 수정하심 될거 같네요.
    • 무쇠팔™
    • 2007.08.02 18:05
    안녕하세여~~~
    jw브라우져를 걍 퍼가서리, 무단으루 마구 홍보하는 눔입니다...^^

    jwmx님의 PP강좌를 보구, 따라해보구 있는대여...
    강좌를 보구 아무리 해두 안되는게 있어서여...(스크립트가 먼지도 모르고 걍 따라하구 있어여...ㅠㅠ)
    열기/저장 대화상자에서 폴더바로가기는 잘 되는데여...
    탐색기에서는 왜 안보이져...?
    근데, PP configure 창에서 맨위에 있는 programs버튼을 누르면, 탐색기가 하나 뜨면서 오른쪽에 보이긴하는데여,
    정작 윈도우탐색기를 열면 안보이네여...
    뭘 잘 못 한걸까여? 플럭인두 다 집어 너은 것 같은대...
    좀 알려주세여...

    카페에두 가서 봤는대여... 역시 잘 모르겠습니다...
    • 좋은날
    • 2008.04.25 10:28
    간만에 어려운거 다시 나왔네요 ㅠ.ㅠ