본문 바로가기

Programming267

Windows7 에서 (Vista이상?) CAD(Ctrl Alt Del) 스크린의 메뉴 숨기는 방법 이 작업을 수행하게 된 계기는... 프로그램 실행시에 Ctrl + Alt + Del (이하 CAD)키의 입력을 막는 것에서 부터 시작되었음. 윈도우 XP까지는 DllInjection을 이용하여 CAD를 막을 수 있었는데. 7에서는 동작하지 않음. 찾아보니.. CAD는 키보드 입력 후킹을 해도 잡아낼 수 없는 녀석... 얘는 winlogon.exe가 가져가는 인터럽트. 윈 XP에서야 나도 같은 세션에 있으니 dll Injection이 가능했으나, 7부터 (정확하게는 Vista부터라 추측하지만, 비슷하에서 돌려보지 않았으므로, 7부터라 표기)는 권한이 없어서 쓰지 못한다. 하긴... 그도 그럴것이.. DllInjection자체는 매우 훌륭한 악성코드감염비법(?)이 될 수 있으니까. 여튼.. CAD를 막으려면.. 2014. 4. 7.
메모리 누수 발견시 참고 MSDN : http://msdn.microsoft.com/ko-kr/library/x98tx3cf.aspx http://support.microsoft.com/kb/151585/ko 메모리 누수 발견시.. 비주얼 스튜디오가 매우 친절하게 어느위치에서 누수가 발생한다고 알려준다. 그러나 VS2003이어서 그런가..? 좀 덜 잡아준다.. =_=;;;; 메모리 누수는 반드시 잡고 넘어가야 할 문제이므로.. 이 CRT라이브러리를 사용하면 된다. #define _CRTDBG_MAP_ALLOC #include #include 위 코드를 추가하여 주고, _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); 를 프로그램 시작할 때 걸어준 후, 프로그.. 2014. 3. 28.
프로그램 종료시 oleinit.cpp에서 메모리 누수현상 발생시 참조 글 : http://blog.naver.com/PostView.nhn?blogId=ljapc&logNo=30121950749 위 블로그에 기재된 것 처럼... oleinit.cpp에서 메모리 누수 발견이 되는 경우가 있다. MFC내부의 버그라는데.. 클래스 소멸시에 AfxOleTerm();을 호출하면 해결된다고 하시길래 해보니까.. 진짜 해결되었다 ㅡㅡv 사용한 툴은 VS2003에서임. 2014. 3. 28.
VS 2010실행시 "지정된 모듈을 찾을 수 없습니다." 오류가 뜨는경우.. VS2010 재설치 / SP까지 재설치 해도 여전히 동일한 이슈 발생.. 구글 검색 중... 아래 링크에 정말정말 유용한 정보가 있더라. http://blog.naver.com/PostView.nhn?blogId=devace&logNo=20023776428&viewDate=&currentPage=1&listtype=0 regsvr32 %systemroot%\System32\Scrrun.dll 이 명령으로 해당 dll을 등록이 되지 않아서 발생하는 문제.. 등록하니까 잘 된다... 난.. 왜 재설치를 수행한걸까 ;ㅁ; 여튼 윗 분 덕에 좋은 정보를 얻어 공유합니다. *추가. 이 이후 VS2010관련 업데이트 수행시 동일한 이슈가 발생한다. 가끔 재현되고... =0=;; 이럴 경우에는 .net framewo.. 2014. 3. 17.
CreateWindow로 버튼을 만들었을 때, Bitmap 이미지를 씌우면.. MFC에서는 LoadBitmaps로 하면 될 것 같은데 (해보진 않아서 모름) API에서는 몇가지 방법이 있다. 첫번째 방법은 SendMessage 해당 버튼 윈도우로핸들로 SendMessage( hWnd, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hbmp); //hbmp = HBITMAP 를 하면 되는데, 문제는 이 경우... EnableButtons을 하면 이미지가 요상하게 변한다. 이런 경우 WM_DRAWITEM에서 draw를 처리해주면 된다. LRESULT CALLBACK wndproc( params) { switch(msg) { ... case WM_DRAWITEM: DrawBtn(hWnd, wParam, lParam); ... } void DrawBtn(HW.. 2014. 2. 28.
[Win32 API] TreeView를 생성하여 사용시.. TreeView를 가진 윈도우를 생성하여 사용중에, Treeview를 가진 윈도우를 resize하면, WM_SIZE메시지에서, 해당 TreeView도 move window를 해서 size를 변경하여 준다. 그리고, 트리뷰의 경우 NM_CUSTOMDRAW가 호출되어 오는데, lParam을 NMTVCUSTOMDRAW로 cast하면 DC와 대상의 크기 (RECT)를 얻어올 수 있다. 여기에 비트맵을 불러와 뿌려주면, TreeView의 배경에 비트맵을 표현할 수 있음. NMTVCUSTOMDRAW* pLVCD = reinterpret_cast(lParam); if( pLVCD->nmcd.dwDrawStage == STEP) { //Todo pLVCD->nmcd.hdc; //HDC pLVCD->nmcd.rc; //.. 2014. 2. 26.
728x90