본문 바로가기

C Programming

(5)
[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..
Pi 값 계산하기. Super Pi 라든가 하는 많은 프로그램들이 있습니다만 .. 다들 어떤 계산을 하는지 모르겠습니다만 , 저는 이 방법을 사용합니다 :) MAX_COUNT 의 자리수를 증가 시킬수록 연산은 좀더 시간이 많이 걸리게 되고 , CPU 의 사용량은 증가 하게 됩니다 ^^ thread 로 위 코드를 여러개로 한번에 돌리게 된다면 상당한 CPU 사용율을 보게 될것이라 생각 되는군요 ^^
[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 장치들 목록을 알고 싶을떄 ... " 후자 두가지는 사실 시스템 레지스트리 보다는 사용중인 리소스를 보고 판단해야 하겠지만, 이런 부분은 어셈블러나 드라이버부분이 함께 연동이 되어야 하는 이유로 어려움이 따를수 밖에 없는 부분 입니다. 하지만, 가장 좋은건 지금 설치된 프로그램이나 , 설치 제거가 가능한 프로그램들 목록을 검색할떄 이런걸 사용한다면 참 좋을것이라는 생각이 듭니다. 다음은 제가 구현한 코드 입니다. 들어가는 인자는..