본문 바로가기

어떻게 할까

(135)
[Win32.API] 윈도우 버젼 알기. 요즘은 OS 버젼에 따라 특정 작업을 해야 하는가? 또는 다른 방법을 사용 해야 하는가? 같은 판단을 해야 할 경우가 있습니다. CPU 검사로도 사용 해서 성능을 향상 시키는 어셈블러가 있듯이 , OS 에서도 특정 비주얼 적인 부분을 부각 시킬수 있는 방법이 있습니다. 다음 코드는 OS 를 알아 오는 기본적인 방법 입니다. OSVERSIONINFO ver; FLOAT OStype = 0.0f; ver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&ver); OStype = ver.dwMajorVersion + (ver.dwMinorVersion * 0.1); * 참고 * FLOAT 은 float 을 재 정의 한 것입니다. 이렇게 되면 OStype..
카메라 분해기 - Pentax *istDS 이 카메라는 제가 일본에서 구입해서 쓰다가 온 카메라로서 , 아시는 분들은 아시는 Pentax *istDS 입니다. 2003년생 이며 , 캐논에서 350D 가 나오기 전까지는 가장 작은 바디 였습니다. 캐논의 USM 렌즈단 350D 가 아니라면 부러울게 없는 바디 입니다 .. ㅎㅎ 왜냐면 .. 죽음의 느린 AF 속도를 가졌거든요 ... 하지만 사진은 AF 속도로 찍지 않는다는것 .. 게다가 빠른 AF 는 K10D 가 있으니까요 .. ㅋㅋ Pentax 의 디지털 역사상 두번째 바디로서 , 캐논 원디 나 오디 쓰시던 분들도 그 색감에 다시 돌아 온다는 *istD 의 동생 입니다. 뭐 ... *istD 도 AF 느린건 .. 형이나 동생이나 마찬 가지지만요 .. 하핫. 분해요인은 .. 바디 뒷면의 휠의 부정확성..
CPU 지원 명령어 알아 보기. CPU 에서 지원 되는 명령어set 중 대표적인 몇개를 알아 볼수 있는 asm 코드가 있다. 이 asm 코드는 인라인으로 처리가 가능하며 , 결과 값들은 각 레지스터에 저장되게 된다. 각종 CPU 명령어가 지원 되는지? mov eax,1 db 0x0F,0xA2 mov _edx,edx _edx 레지스터에 0x800000 을 AND 연산하여 0x800000 이 남으면 MMX 명령이 지원 되는 CPU 이다. 또한 _edx 레지스터에 0x02000000 로 AND 연산해서 같은 값이 나오면 SSE 가 지원되며 .. _edx 레지스터에 0x04000000 가 AND 연산으로 동일하게 나오면 SSE2 가 지원 되는 CPU 이다. 이런 명령어 처리가 필요한 이유는 , SSE 나 SSE2 명령어 set 을 사용하여 좀..
[Win32.Reg] Windows XP 성능 향상을 위한 각종 레즈스트리 설정. Windows Registry Editor Version 5.00 ;오류보고기능 제거 [HKEY_LOCAL_MACHINESOFTWAREMicrosoftPCHealthErrorReporting] "DoReport"=dword:00000000 ;AVI, MPG, MPE, MPEG 파일 미리읽기 기능 제거 [-HKEY_CLASSES_ROOT.aviShellEx] [-HKEY_CLASSES_ROOT.mpgShellEx] [-HKEY_CLASSES_ROOT.mpeShellEx] [-HKEY_CLASSES_ROOT.mpegShellEx] ;보안센터관련 (방화벽,안티바이러스, 자동 업데이트)제거 [HKEY_LOCAL_MACHINESOFTWAREMicrosoftSecurity Center] "FirstRunDisabl..
[win32.API]윈도우 객체에 그림자 들이우기. 윈도우의 XP 이상에서는 윈도우 폼 생성 클래스 중 CS_DROPSHADOW 라는 것이 있다. 하지만, 어느 SDK 에서도 이 그림자 생성에 관련된 것은 없지만 , 다음 방법으로 핸들값 을 통해 쉐도우를 생성 할수 있다. void EnableDropShadow(HWND hWnd, bool DoEnable) { DWORD classLong = GetClassLong(hWnd, GCL_STYLE); if (DoEnable) classLong = classLong | CS_DROPSHADOW; else classLong = classLong & ~CS_DROPSHADOW; SetClassLong(hWnd, GCL_STYLE, classLong); } HWND 값에는 각종 CreateWindow() 함수를 통해..
[Win32.API] 파일검색. V3 라던가 , ADaware 라던가 ... 항상 나오는게 바로 파일 검색 입니다. 파일 검색은 console 에서 dir 이나 , ls 명령으로 가능 하겠 습니다만, 실제로 C 코드내에서 쓰이는 것이라면 이런걸로는 무리겠죠 ^^ 그럼 어떻게 할까요 ? 다음 코드는 제가 Pascal 에서 쓰던 것을 옮긴 코드 입니다 (어차피 API 부르는것 이니까요) { HANDLE hSrch; WIN32_FIND_DATA wfd; BOOL bResult=TRUE; char drive[_MAX_DRIVE]; char dir[MAX_PATH]; char newpath[MAX_PATH]; char psypath[MAX_PATH]; hSrch=FindFirstFile(path,&wfd); if (hSrch == INVALID..
[win32.api] 레지스트리 검색. 가끔 이런게 필요할떄가 있습니다. " 레지스트리 특정 키 위치 아래를 뒤져서 하위 키들 목록을 좀 알고 잡다." 이런건 이렇게 쓰일떄가 가장 큰 이유일 거라 생각되지요. " 설치된 프로그램들 목록을 알고 싶을때 ... " " USB 장치들 목록을 알고 싶을때 ... " " PCI 장치들 목록을 알고 싶을떄 ... " 후자 두가지는 사실 시스템 레지스트리 보다는 사용중인 리소스를 보고 판단해야 하겠지만, 이런 부분은 어셈블러나 드라이버부분이 함께 연동이 되어야 하는 이유로 어려움이 따를수 밖에 없는 부분 입니다. 하지만, 가장 좋은건 지금 설치된 프로그램이나 , 설치 제거가 가능한 프로그램들 목록을 검색할떄 이런걸 사용한다면 참 좋을것이라는 생각이 듭니다. 다음은 제가 구현한 코드 입니다. 들어가는 인자는..