C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[56028] 화면 보호기 막는 방법?
아제나 [azena] 1532 읽음    2009-02-06 10:46
예전에는 화면 보호기 막는 방법이 잘 통했던 것 같은데...

다시 만들려니까 왜 이리 안 되는지 모르겠네요 ㅋ


void *g_OrgAppWndProc;

int __stdcall AppWndProc(HWND Wnd,int Msg, int wParam, int lParam)
{
  switch( Msg )
  {
    case WM_SYSCOMMAND:
      TRACE("WM_SYSCOMMAND");
      if( wParam == SC_SCREENSAVE || wParam == SC_MONITORPOWER )
      {
        TRACE("Shutdown Screen Saver!");
        return -1;
      }
      break;
  }

  CallWindowProc( (FARPROC)g_OrgAppWndProc, Wnd, Msg, wParam, lParam );
}

void __fastcall TForm4Control::FormCreate(TObject *Sender)
{
  g_OrgAppWndProc = (WNDPROC)GetWindowLongA(Application->Handle,GWL_WNDPROC);

  SetWindowLongA( Application->Handle, GWL_WNDPROC, (LONG)&AppWndProc );
}



이런 식으로 코딩이 되어 있고요.

화면 보호기가 실행되면 날아온다는 WM_SYSCOMMAND 메시지를 받아서 처리해주는 것인데...

WM_SYSCOMMAND 메시지가 아예 날아오지 않고 있습니다. 이 뭥미 ㅡㅡ;

최소/최대화 해보니까 이벤트창에 TRACE 메시지가 찍히는 것을 봐서는 프로시져 등록 문제는 아닌거 같은데요.

누군가는 XP SP2 이후에는 WM_SYSCOMMAND를 보내지 않는다고도 하고...

정확한 원인을 모르겠네요.

이게 정 안 되면 그냥 59초에 1번씩 SHIFT 키를 눌러주게 만들어야 겠습니다...

+ -

관련 글 리스트
56028 화면 보호기 막는 방법? 아제나 1532 2009/02/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.