레이블이 plugin인 게시물을 표시합니다. 모든 게시물 표시
레이블이 plugin인 게시물을 표시합니다. 모든 게시물 표시

2009년 3월 19일 목요일

Total Commander Unalz Plug-in (0.64 applied)

이런 변두리까지 찾아주시는 분들이 계셔서 약간의 책임감(양심의 가책) 같은 걸 느끼고, 앞서 올렸던 소스를 조금 손 봤습니다. ;-)
  • 내부적으로 사용되고 있는 bzip2, zlib의 최신 버전 소스를 가져다 적용했습니다. (bzip2 1.05, zlib 1.23)
  • Unalz 0.64 소스의 수정 사항을 Unalz plug-in 분리 소스에 반영했습니다. (Unalz plug-in이 Unalz의 소스를 가져다 동일한 파일명으로 복사한 후 일부분만 변경해서 사용하는 방식으로 만들어져 있더군요. 이 작업은 시간이 제법 걸렸습니다.)
  • 경로명 encoding 변경할 때 동적할당 되는 heap 대신 stack을 사용하도록 수정했습니다. (약간의 속도 개선)
  • VC++ 2008 Express Edition에서도 빌드가 가능하도록 수정했습니다. (집에는 VC++ 2008 상용버전이 없어요. ㅜㅜ)
    • Unicode String과 MBCS 간 변환 관련 ATL 라이브러리를 Win32 API로 대체했습니다.
    • afxres.h 관련 error 해결에는 BLUE'nLIVE 님의 글을 참고했습니다.

소스와 바이너리가 위와 같이 변경되었지만, 링크 주소는 예전과 동일합니다. -- 2009.03.30

-----

오래 전에 Total Commander의 unalz plugin을 build해서 올렸던 적이 있는데, 이번에 새로 0.64 버전의 unalz 소스를 가져와 다시 build 해보았습니다. Visual C++ 2008을 사용해서 build 하려다 보니 소스 코드 내용 중 약간 변경이 필요한 부분이 있더군요. 그리고, unalz 내부 자료형이 변한 것도 고려 대상이 되었습니다. 아무튼 얼렁뚱땅 손을 좀 봐서 build하고 사용해보니 아직까지는 별 탈 없이 잘 동작하고 있습니다.

혹시라도 사용하실 생각이 있는 분을 위해 링크 올려둡니다. (수정한 소스도 함께...)

Binary: wcxArc_Unalz_v0.64.rar
Source: unalz_wcx_0.1i_unalz_0.64_source.rar

위 링크에서 다운로드가 불가능하면 아래 링크(DropBox)를 이용해보세요.

BinarywcxArc_Unalz_v0.64.rar
Sourceunalz_wcx_0.1i_unalz_0.64_source.rar

그리고, 경우에 따라 아래의 MS C Runtime Library가 필요할 수도 있습니다.

Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)


원 소스의 출처는 다음과 같습니다.

Unalz 소스: http://www.kipple.pe.kr/win/unalz/
Unalz.wcx 소스: http://www.totalcmd.net/plugring/unalz_wcx.html

당연한 언급이지만, 여기서 링크한 binary와 source에 대해 저는 아무런 권리도 가지고 있지 않습니다. 모든 권리는 원 저작자에게 있습니다. 또한, 여기서 제공된 binary 또는 source를 사용하면서 발생할 수 있는 어떠한 물질적 정신적 손해에 대해서도 책임을 지지 않습니다. ;-)


주의:
위에서 잠시 언급한 unalz 내부 자료형 변경과 관련하여 주의할 점이 있습니다.
Unalz가 버전이 올라가면서 2 GB 이상의 압축 파일을 지원하기 위해 INT32 대신 INT64 타입을 사용하게 된 것 같은데, Total Commander plugin interface는 아직 32-bit int 형이기 때문에 여기서 문제가 발생할 소지가 있어보입니다. 우선은 32-bit int 범위 내에서 표현 가능한 범위는 적절히 casting 하고, 그것을 넘어가는 경우는 assert로 막아두었기 때문에 엉뚱하게 동작하는 경우는 피할 수 있겠지만, 2 GB 넘어가는 압축 파일을 풀려고 하면 아무래도 crash가 발생하게 될 것 같습니다. :-(

2007년 5월 24일 목요일

WMP Keys - Windows Media Player Global Hotkey Plug-in

Global Hotkey란, 대상 프로그램이 포커스를 가지고 있지 않더라도 특정 키 조합을 눌러서 그 키 조합에 할당된 동작이 실행되도록 하는 기능을 말합니다.

간단히 예를 들어보죠. WinAmp로 음악을 들으면서 문서 작업을 하고 있는데, 지금 듣고 있는 곡이 마음에 들지 않아서 다음 곡으로 넘어가고 싶습니다. 그런데, WinAmp는 트레이로 최소화 되어 있는 상태입니다. 이 때, Ctrl + Alt + Page Down 키를 누르면 굳이 마우스로 WinAmp를 끌어올려서 Next 버튼을 누르지 않더라도 간편하게 다음 곡으로 넘어갈 수 있습니다. (WinAmp 설정에서 global hotkey 기능을 활성화 시켜두어야 합니다.) 문서 작성 작업을 열심히 하고 있는 손을 키보드에서 떼지 않고도 빠르고 간편하게 WinAmp에 지시를 내릴 수 있는 것이죠.

많은 프로그램들이 global hotkey 기능을 지원하는데, 특히 음악 재생 프로그램 같이 백그라운드로 동작하는 프로그램들에서 많이 제공됩니다. 대표적인 프로그램이 WinAmp, Cowon JetAudio 같은 것들입니다. 인스턴트 메신저의 전설 같은 프로그램인 ICQ도 global hotkey 기능을 통해 사용자의 접근성을 매우 향상 시킨 경우로 볼 수 있을 겁니다.

이렇게 편리하고 좋은 기능을 Windows Media Player에서도 사용할 수 있도록 도와주는 플러그인이 있더군요. 바로, WMP Keys입니다.


(Windows Media Player에서 WMP Hotkeys 설정 중인 모습)

WinAmp의 global hotkey 플러그인에 비하면 매우 간단하지만, 재생/정지, 다음 곡/이전 곡, 볼륨 키우기/줄이기 등의 핵심적인 기능은 지원하므로 아쉬우나마 Windows Media Player의 가려운 곳을 긁어주기엔 부족함이 없습니다.

WMP Keys의 공식 홈페이지는 다음과 같습니다.

LINK: http://wmpkeys.sourceforge.net

설치 패키지를 다운로드 해서 설치한 뒤 Windows Media Player를 실행하고 플러그인 설정 다이얼로그에 들어가 보면 위 스크린샷과 같이 백그라운드(Background) 카테고리에 'Wmpkeys Plugin'이란 항목이 보일 겁니다. 이것을 선택하고 속성(Properties) 버튼을 누르면 hotkey를 설정할 수 있는 다이얼로그가 뜹니다. 입맛에 맞게 설정하고 닫으면 이제부터 Windows Media Player에서도 global hotkey를 사용할 수 있게 됩니다.