Stefan Sundin의 AltDrag에서 포크되었습니다.
위키를 확인하세요: https://github.com/RamonUnch/AltSnap/wiki
기존 문서: https://stefansundin.github.io/altdrag/doc/
포크된 코드라서 문서가 100% 정확하지는 않습니다. 좀 더 자세한 사항이 궁금하시면 변경사항(changelog)을 확인바랍니다.
AltSnap은 Alt 키를 누르고 윈도 창의 아무곳이나 클릭하여 창을 이동하고 크기를 조절할 수 있도록 하는 유틸리티입니다. 리눅스에서는 이러한 기능과 동작이 일반적으로 적용되어있고 실제로 윈도우에서도 적용하기 어렵지 않습니다.
이 포크는 풍부한 기능을 유지하면서도 최소한의 버그를 최소화하여, 최신 버전으로 유지하려고 노력하는데 목적이 있습니다.
이 포크는 주로 Windows XP와 Windows 10에서 테스트 되었습니다만 Windows NT 4에서 Windows 11까지의 모든 Windows에서 사용이 가능합니다.
주요 차이점: 코드를 최대한 단순화하기 위해 창을 후크(Hook)하는 방식을 제거하였습니다. 이러한 방식은 드래그를 하는동안 어떠한 창이든 스냅할 수 있도록 하는 장점이 있는 반면에, 모든 응용 프로그램에 dll을 삽입(DLL Injection)해야 했었으므로 명백히 보안상의 위험이 있었습니다. 단순히 이 기능을 위해 상당한 양의 코드가 추가되었으며 동시에 32비트 및 64비트 버전의 프로그램을 모두 실행해야 했기 때문에 코드의 복잡도를 크게 증가시켰습니다.
이 버전은 다른 어플리케이션에 아무것도 삽입(Injection)하지 않습니다. 따라서 32비트 운영체제를 사용하든 64비트 운영체제를 사용하든 걱정할 필요가 없습니다.
이외에 제거된 기능은 "타이핑시 포커스"로, 테스트를 시작하기도 전에 이미 사용할 수 없는 상태였으므로 제거 했습니다.
이러한 변화로 소스코드가 훨신 간결해졌고, 약간의 추가적인 옵션을 넣었습니다. 예를 들면 드래그 하는 동안 투명 윈도우를 투명하게 한다던가, 최대화 액션, 프로세스 일시 중지, AltSnap을 조금 더 세밀하게 제어할 수 있는 블랙리스트 등의 추가 옵션이 추가되었습니다.
마지막으로 기존의 AltDrag에서 발생했던 이상 동작과 버그를 잔뜩 수정했습니다.
새로운 기능
기본적으로 옵션 다이얼로그 창에서 새로운 기능을 만나보실 수 있지만, 일부 기능은 AltSnap.ini 파일을 직접 수정해야만 합니다. (트레이 아이콘을 가운데 클릭해 보세요)
최신 빌드에서는 일반적으로 다른 공급업체의 SecureAge APEX와 마찬가지로 종종 경고가 표시되는 것을 볼 수 있습니다. 이러한 경고는 오탐이며 프로그램 개선에 시간을 낭비하는 것이기 때문에 매 릴리스마다 APEX 팀에 연락하는 것을 중단했습니다. 빌드 플래그를 변경하고 이전 버전의 NSIS 인스톨러 시스템으로 전환하는 것만으로 이미 오탐의 수를 많이 줄였습니다. 이것은 일부 최신 바이러스 백신 솔루션의 부족함을 나타냅니다. Chocolatey에서는 VirusTotal에서 5개정도의 양성 탐지는 전혀 의심운것이 아니라고 간주하고 있습니다.
AltSnap은 gcc로 빌드할 수 있습니다. 제 경우엔 i686용을 빌드할때 Mingw-w64를 사용합니다.
최신 버전을 설치하신 후 (저는 MinGW64 기반의 TDM-gcc 10.3를 사용중입니다):
> make
i386 Win32 GCC 빌드.
> make -fMakefiledb
i386 GCC 디버그 빌드.
> make -fMakefileX64
x86_64 GCC 빌드.
> make -fMakefileX64db
x86_64 GCC 디버그 빌드.
> make -fMakefileClang
LLVM Clang을 이용한 i386 빌드.
> make -fMakefileTCC
tcc(Bellard's thiny c compiler)[https://bellard.org/tcc/]를 이용한 i386 빌드
mk.bat
와 mk64.bat
파일을 사용하실 수도 있습니다. Clang의 경우 저는 LLVM5.0.1과 Mingw-w64의 header 및 lib를 사용합니다. 커맨드라인을 변경해서 -IPath\to\mingw\include
and -LPath\to\mingw\lib
를 추가하는 것을 잊지마세요.