2018년 5월 12일 토요일

[샘플] Windows에서 다른 프로그램의 타이틀바를 없애고 반투명하게 만들어 주는 소스입니다.

요즘 다각도로 생각이 많은 상태로 페이스북을 보다가 지인의 글 바로 위에 올라와 있는 질문을 보고 그 지인이 올린 질문인 줄 착각하고 평소처럼 가볍게 촐싹대면서 답글 달고 도움 요청하면 알려주고 술이나 얻어먹을까 했는데 잠깐 정신 차리고 보니 질문자가 모르는 분이었네요.

깜짝 놀라고 챙피해서 어서 빨리 댓글을 지우는 찰나에 질문자가 댓글을 보고 답변을 달았네요.

관성의 법칙에 따라 댓글은 지웠지만 마음의 앙금은 안 지워져서 다시 댓글 달고 답변에 해당하는 코딩하고 바이너리와 소스를 올립니다.

제목대로 "Windows에서 다른 프로그램의 타이틀바를 없애고 반투명하게 만들어 주는 소스 코드"입니다.

제가 수정하기 전의 소스는 아래 링크에서 다운로드 받을 수 있습니다.

https://www.codeproject.com/Articles/1698/MS-Spy-style-Window-Finder

위의 소스는 윈도우OS에서 다른 프로그램의 정보를 얻어내는 소스코드 입니다.

이걸 약간 수정하면 남의 프로그램에 다양한 조작질을 할 수 있습니다.

https://drive.google.com/file/d/1xBHi3rmrDOYRcvMCsIILpZxVWvyhD_xl/view?usp=sharing

위의 소스코드가 남의 프로그램 타이틀 바를 없애고 투명도를 50%로 바꾸는 바이너리와 소스 코드입니다.

바이너리는 압축을 풀고 나오는 디렉토리중에 Release 디렉토리를 보면 있습니다.

원 소스는 Visual C++ 6.0 프로젝트 파일이며 저는 Visual C++ 2005에서 빌드했습니다. 특별한 것이 없으므로 상위 컴파일러에서 빌드될 겁니다.

두 소스를 WinMerge 같은 비교툴로 비교해서 차이를 봐도 되고, 텍스트 검색으로  //GoodLuck 이라고 되어 있는 곳만 봐도 됩니다.

나중에 단 댓글에 유니티에서 지원안한다고 했는데 다시 생각해보니 이걸 dll로 만들고 유니티에서 임포트하면 위처럼 별도 프로그램으로 만들 필요없이 가능하겠습니다. 작년에 유니티에서 AR작업을 애셋없이 날코딩해서 만들때 안드로이드와 ios 모두 별도로 모듈 만들어서 임포트해서 했으니 윈도우에서도 당연히 되겠네요.

첨부된 바이너리의 간략한 사용법은 아래와 같습니다.





이 글은 질문자뿐만 아니고 몇 몇 사람들이 보겠지요. 모두들 딱 원하는 소스는 아닐 겁니다.

요새는 프로그램을 앱이라고 부르지요. Application을 줄여서 부르는 말입니다. 신청서란 뜻도 있지만 소프트웨어 업계에서 예전엔 응용 프로그램이라고 불렀습니다.

제가 수정한 부분은 아주 간단하고 얼마 안되지만 이 작업을 해보지 않은 사람들에겐 이 결과를 내는 과정은 굉장한 노력이 필요합니다. 소프트웨어 개발이란 게 그렇습니다. 경력이 오래된 베테랑들도 단 한줄 때문에 수 없이 밤을 샙니다.

이런 간단한 것 쯤이야 그냥 검색해서 나와주면 좋겠지만 그런것도 있고, 아닌 것은 훨씬 많습니다. 검색에서 나오지 않는다면 단 몇 줄을 위해서 정말 많은 것을 공부하고 봐야 합니다.

이 간단한 것도 응용하려면 해보지 않은 사람들에겐 매우 어렵고 배경지식을 공부하는 시간이 많이 필요하니 급하지 않게 천천히 살펴보면서 다양하게 응용해보시기를 바랍니다. 그 과정이 결국 재산으로 남게 될 거라 생각합니다.

댓글 없음:

댓글 쓰기