본문 바로가기

Programming/Windows&C#

(64)
[Windows/WinAPI] RegOpenKeyEx, RegEnumKeyEx, RegEnumValue LONG WINAPI RegOpenKeyEx( _In_ HKEY hKey, -----① _In_opt_ LPCTSTR lpSubKey, -----② _Reserved_ DWORD ulOptions, -----③ _In_ REGSAM samDesired, -----④ _Out_ PHKEY phkResult -----⑤ ); 함수 설명 :지정된 레지스트리 키를 오픈합니다. 지정된 레지스트리 키가 존재하지 않는 경우는 키를 작성하지 않기 때문에 에러를 발생한다. 성공시 ERROR_SUCCESS(0)를 반환한다. ① HKey : 오픈 되는 키의 핸들을 지정한다. 자세한건 RegCreateKeyEx 참고. ② lpSubKey :오픈하는 서브 키의 이름을 나타내응 문자열의 주소를 지정한다. 자세한건 RegCreat..
[Windows/WinAPI] RegCreateKeyEx, LONG WINAPI RegCreateKeyEx( _In_ HKEY hKey, -----① _In_ LPCTSTR lpSubKey, -----② _Reserved_ DWORD Reserved, -----③ _In_opt_ LPTSTR lpClass, -----④ _In_ DWORD dwOptions, -----⑤ _In_ REGSAM samDesired, -----⑥ _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, -----⑦ _Out_ PHKEY phkResult, -----⑧ _Out_opt_ LPDWORD lpdwDisposition -----⑨ ); 함수 설명 : 함수 성공시 특이하게도 ERROR_SUCCESS(0)을 반환한다. 레지스트리 키를 만들며..
[Windows/WinAPI] LockFIleEx BOOL WINAPI LockFileEx( _In_ HANDLE hFile, ------① _In_ DWORD dwFlags, ------② _Reserved_ DWORD dwReserved, ------③ _In_ DWORD nNumberOfBytesToLockLow, ------④ _In_ DWORD nNumberOfBytesToLockHigh, ------⑤ _Inout_ LPOVERLAPPED lpOverlapped ------⑥ ); 함수 설명 : CreateFile 함수로 오픈한 파일에 Lock을 건다. LockFile와의 차이로는 LockFile은 배타적인 잠금만 가등하지만 LockFIleEx는 공유적인 잠금도 가능하다. 플래그 값을 0으로 주면 공유잠금이 되며 배타적인 잠금을 하기 위해서는..
[Windows/WinAPI] GetFileSizeEX, GetFileAttributes, SetFileAttributes, FileTimeToSystemTime BOOL WINAPI GetFileSizeEx( _In_ HANDLE hFile, --------① _Out_ PLARGE_INTEGER lpFileSize --------② ); 함수 설명 : 파일의 사이즈를 반환한다. 첫번째 인자에 해당 파일의 핸들값을 전해주면 두번째 인자에다가 파일 사이즈값을 전달한다. LARGE_INTEGER의 포인터를 넘겨주고 성공시 0이 아닌값을 반환한다. ① hFile : Size를 측정 할 파일은 핸들을 넘겨준다. ② IpFIleSize :Size의 값을 저장할 LARGE_INTEGER의 포인터를 넘겨준다. *LARGE_INTEGER의 형태?typedef union _LARGE_INTEGER { struct { DWORD LowPart; LONG HighPart; }; s..
[Windows/WinAPI] FindFirstFile, FindNextFile, FindClose HANDLE WINAPI FindFirstFile( _In_ LPCTSTR lpFileName, -------① _Out_ LPWIN32_FIND_DATA lpFindFileData -------② ); 함수 설명 : PATH로 입력 받은 해당 디렉토리에서 파일 검색을 실시한다. 성공시 파일 검색 핸들을 반환하고 두 번쨰로 전달되는 구조체에 첫 번쨰로 발견되는 파일의 정보를 넣어준다. ① lpFileName :파일을 검색할 디렉토리 PATH를 입력한다. ② lpFindFileData :검색된 파일의 데이터 구조체의 포인터를 넘겨준다. FindFirstFile() 성공시 검색된 첫 번째 파일의 정보를 넣어준다. BOOL WINAPI FindNextFile( _In_ HANDLE hFindFile, ----..
[Windows/WinAPI] SetFilePointer DWORD WINAPI SetFilePointer( _In_ HANDLE hFile, -----① _In_ LONG lDistanceToMove, -----② _Inout_opt_ PLONG lpDistanceToMoveHigh, -----③ _In_ DWORD dwMoveMethod -----④ ); 함수 설명 : 파일 포인터를 원하는 위치로 이동시킬때 사용한다. 성공시 새로운 DWORD형인 파일 포인터 값이 리턴되며 실패시에는 INVALID_SET_FILE_POINTER값을 반환한다. 파일 포인터가 마이너스값이 되더라도 실패하게 된다. ① hFile :파일의 핸들값을 인자로 준다. ② lDistanceToMove :파일의 포인터를 옮길 위치값을 전해준다. 이때 lpDistanceToMoveHigh에서..
[Windows/WinAPI] [펌] 디렉토리생성, 삭제 활용. 출처 : http://blog.naver.com/PostView.nhn?blogId=dolicom&logNo=10096040743 Win32 API가 제공하는 CreateDirectory 함수의 응용.API CreateDirectory의 경우 c:\1\2\3을 만들때 c:\1\2가 이미 존재하지 않으면 실패한다. -_-이를 보완하고(상위폴더부터 주구장창 만들어 낸다;) 경로에 파일명까지 포함되어 있어도 폴더만 만들도록 해봤다. - 말은 거창(?)한데 그냥 문자열 파싱해서 CreateDirectory를 반복 호출한다;; BOOL _CreateDirectory( LPCTSTR lpszPath ) { TCHAR szPathBuffer[MAX_PATH]; size_t len = _tcslen( lpszPath ..
[Windows/WinAPI] CreateDIrectory, SetCurrentDirectory, GetCurrentDirectory BOOL WINAPI CreateDirectory( _In_ LPCTSTR lpPathName, -----① _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes -----② ); 함수 설명:디렉토리를 새로 만든다. 성공할 경우 0이 아닌 값을 리턴한다. ① lpPathName :생성할 디렉토리의 PATH를 입력한다. 이떄 PATH가 정확해야 한다.(중간 과정이 확실하게 명시되어야 한다.) ② lpSecurityAttributes :디렉토리에 대한 보안 속성을 설정해 준다. 보안속성을 하지 않을 경우에는 NULL을 넣어주면 된다. --------------------------------------------------------------------BOOL Set..