virtual와 override 문의 사용법에 대해서

객체지향에서 일종의 불문율같은 코딩 방식이 있습니다. 컴파일러가 반드시 그렇게 코딩해야 한다고 강제하지는 않으나, 반드시 그렇게 코딩하는 것이 옳다고 하는 방식입니다. 이는 오랜 동안 객체지향 기법을 연구한 끝에 여러 개발자들이 동의하는 사항들입니다. 그런 불문율 중에 몇가지를 논해 보려 합니다.------------------------------------------------------------먼저 상위 클래스 메서드를 재정의할 때 사용하는 ove...

델파이로 긁어오는 HTML 페이지

델파이로 긁어오는 HTML 페이지- 이 기사는 인터넷으로부터 HTML페이지를 다운로드하는데 요구되는 테크닉을 보여줍니다.어떤 페이지 스크래핑(패턴 매칭에 대한 정규식으로)하고 "situation-friendly" 방법으로 정보를보여주게 되죠.여러분들이 이미 알고 있듯이, "About Delphi Programming"은 기사와, Chat, Forum, RTL Reference, Glossory, Free Source Code VCL과 더 많은 것들을 포함하는 Delphi/Kylix 개발...

Windows95/98 암호 알아내기

도스에 나가서 Windows가 깔린 드라이버나 Windows가 있는 cdrom에서 system.1st 파일을 찾습니다. 이건 어느 폴더 같은데 안들어 있습니다. 그냥 C:에 있습니다(C:가 Windows가 깔린 드라이버일 경우)! 이 파일(sysyem.1st)은 숨겨진 파일임으로 mdir에서는 Alt+Z를 사용하여 찾습니다. 이걸 DOS용 에디터(Edit 등)로 불러냅니다. 거기서 검색하여 productkey를 찾습니다. 그것 옆에보면 암호가 있는데 그것...

여러가지 시스템 종료 기법

ExitWindowsEx(EWX_FORCE, 0); // 강제 종료ExitWindowsEx(EWX_LOGOFF, 0); // 로그 오프ExitWindowsEx(EWX_POWEROFF,0); // 셧다운후 시스템 끄기ExitWindowsEx(EWX_REBOOT, 0); // 재부팅ExitWindowsEx(EWX_SHUTDOWN,0); // 셧다운

키보드로 마우스 커서 움직이기

제목 그대로 키보드로 마우스 커서를 움직이는 코드입니다. CView에서 OnKeyDown 함수를 다음과 같이 고치면 됩니다.void CCGhostView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default CPoint ptCurPos; // 현재 커서의 위치 if(::GetCursorPos(&ptCur...

대화상자에 비트맵 올리기

아쉽게도 CDC::DrawBitmap이란 함수는 없습니다. 비트맵 자원을 출력하려면 비트맵을 읽어들이고, 출력 장치와 호환되는 메모리 장치 컨텍스트를 생성해야 합니다. 그런 다음 비트맵을 장치 컨텍스트로 선택하고, 장치 컨텍스트를 출력 장치로 전송합니다. 그러면 좌측 상단 구석에 비트맵을 올려놓을 수 있습니다. void CSample::OnPaint(){ CPaintDC dc(this); // 출력에 필요한 장치 컨텍스트 CDC dcMem; //비트맵 자...

CD, 플로피등의 디스크 삽입 자동 판단루틴

윈도우즈 커맨더나, 탐색기등을 사용하다보면 디스크를 넣거나 뺐을 때, 이걸 감지하고 자동으로 자료를 갱신해주죠? 보통 프로그램 자체적으로 타이머를 돌려서 감지하는 수도 있겠지만, 윈도우즈 커맨더처럼 프로그램이 활성화될때만 감지하도록 하는 편이 좋을 것 같네요. ^^ 다음은 디스크가 있는지 유무를 판단하는 루틴입니다. 이를 이용해서 이전에 디스크가 있었는데, 검사결과 없었다면 디스크를 빼낸것이고, 그와 반대로 없었다가 검사결과 있다면 삽입한 것이겠지요. <...

태스크 바에서 프로그램(윈도우) 제목 숨기기

프로그램 윈도우 테스크바(task bar)에서 제목(title)을 숨기고 싶은데 숨기기는 참으로 고통스럽다.오늘은 코드그루에서 입수한 비기를 설명해볼까 한다.1. 글로벌 데이터 타입 선언다음과 같이 글로벌 데이터 타입을 선언한다.(다이얼로그 위쪽에 적당히 선언해서 쓰면 된다.)DECLARE_INTERFACE_(ITaskbarList,IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID* ppvObj...

네임드 커널 오브젝트를 사용한 중복 실행 방지법

1. Introduction윈도우상에서 구동되는 특정 애플리케이션들의 경우 중복 실행이 방지되어야 한다. 대표적으로 MSN 메신저등을 들 수 있다. 메신저의 경우 중복해서 실행될 필요가 없다. 이렇게 한번만 실행되어야 하는 프로그램의 경우 어떻게 구현할 수 있을까? 윈도우 핸들을 찾는 방법, 커널 오브젝트를 사용하는 방법, 공유 세그먼트를 사용하는 방법 등이 있다. 여기서 우리가 구현할 방법은 그 중에서도 커널 오브젝트를 사용한 방법이다. 2. Singl...

MSN Live Messenger가 동작이 안되요

[1] 보안정책 삭제MSN Live Messenger만 안되는 분들은 MSN 실행전에 다음과 같이 레지스트리를 지우고 로그인 해보라.[시작] -> [실행] -> regedit.exe -> HKEY_CURRENT_USERSoftwareMicrosoftMSNMessengerPolicies 삭제그런데 MSN쓸때마다 regedit.exe를 실행하여 지우는것은 고통스러운 일이므로다음 프로그램을 다운받아 설치하여 실행하면 지가 알아서 지워주므로 고통에서 해방될 것이...

WinGate 깔았더니 블루스크린이 떠요

최근 펜티엄4 프레스캇, 듀얼 코어 등 이상의 고사양 PC로 업그래이드 하신 분들에게 많이 나타나는 증상이다.이는 DEP(Data Execution Prevention)이라는 기능으로바이러스가 이제는 데이터영역까지 침범하여 PC를 망가트려서 인텔측에서 고안한 방법인데하기와 같이 간단한 처리를 해주면 WinGate를 정상적으로 사용할 수 있다.[1] WinGate를 설치하고 (버젼과 상관없음. 아무 버젼이나)[2] 다음과 같이 boot.ini를 수정한다.C...

      1      2      3      4      5      6      7      8      9      10