프로그래밍 325

WM_SYSCOMMAND로 NONCLIENT 영역의 마우스 동작 흉내내기

WM_SYSCOMMAND 메시지로 윈도우 폼의 타이틀 바가 아닌 클라이언트 영역에서 마우스를 눌렀을 때, WM_MOUSEDOWN 메시지에서 WM_SYSCOMMAND의 WParam으로 $F012를 보내면, 폼을 이동시키는 효과를 그대로 낼 수 있습니다. 보통 SC_CLOSE 등 미리정의된 상수가 있지만, 아래 값들은 상수로 정의되어 있지 않아서 WParam으로 직접 넣어 주면 됩니다. $F001 : 우측 고정 넓이 조절 $F002 : 좌측 고정 넓이 조절 $F003 : 하단 고정 높이 조절 $F004 : 우하단 고정 전체 크기 조절 $F005 : 좌하단 고정 전체 크기 조절 $F006 : 상단 고정 높이 조절 $F007 : 우상단 고정 전체 크기 조절 $F008 : 좌상단 고정 전체 크기 조절 $F009,..

문자열에서 숫자만 추출하는 함수

문자열에서 숫자만 추출하는 경우가 생겨 함수로 한번 만들어 봤습니다. 문자열 데이터에서 숫자(소수점 포함)만 추출합니다. 추출한 문자열을 StrToFloatDef 함수 등을 이용하여 숫자형으로 변환할 수 있습니다. function ExtractNumeric(const strData: string): string; var i, nLen: integer; p, d: PChar; begin nLen := Length(strData); SetLength(Result, nLen); p := @strData[1]; d := @Result[1]; for i := 0 to nLen - 1 do begin if (p^ in ['0'..'9', '.', '-']) then begin d^ := p^; inc(d); end..

TEdit에서 Alignement 처리하기.(왼쪽/가운데/오른쪽 정렬)

TLabel 등에는 TAlignment 속성이 있어서 정렬 처리가 가능합니다. 하지만 TEdit에는 TAlignment 관련 속성이 없습니다. 이를 처리하기 위해서 GetWindowLong 및 SetWindowLong Windows API를 이용합니다. TEdit는 윈도우의 기본 내장 클래스인 edit 컨트롤을 래핑해 놓은 것으로 다음과 같은 스타일을 적용할 수 있습니다. { Edit Control Styles } {$EXTERNALSYM ES_LEFT} ES_LEFT = 0; {$EXTERNALSYM ES_CENTER} ES_CENTER = 1; {$EXTERNALSYM ES_RIGHT} ES_RIGHT = 2; {$EXTERNALSYM ES_MULTILINE} ES_MULTILINE = 4; {$EX..

아파치(Apache) 서버의 서버 정보 표시 안하기.

웹 서버의 응답 헤더에 보면 해당 서버의 상세한 정보가 표시됩니다. 운영체제부터, 서버의 버전 및 설치된 모듈까지... 이러한 정보를 수집하여 공격자들은 서버의 버그 등을 이용하여 서버를 공격하게 됩니다. 이를 방지하기 위해서는 웹 서버의 응답 헤더에서 관련 정보가 표시되지 않도록 해야 합니다. 아파치는 아래와 같이 설정하면 됩니다. 2.x 이상 버전은 /extra/httpd-default.conf 파일에서 다음과 같이 수정합니다. 또는, 아래 강조한 부분을 httpd.conf에 적어 넣습니다. # # ServerTokens # This directive configures what you return as the Server HTTP response # Header. The default is 'Ful..

728x90