728x90
반응형

JMop 394

[Windows/WinAPI] CreateProcess, GetStartupInfo, GetStdHandle, WaitForSingleObject, ResumeThread(실습6)

이것저것 하다보니 늦게 정리했다.... 결국 올려준 실습도 아직 못 했고.... 일단 수업때 했던 실습예제부터 정리해본다... 구구단을 출력 하는 예제이다.CreateProcess를 이용하여 출력한다. 먼저 구구단을 출력할 프로세스를 만든다. 딱히 별 다른 설명이 필요없다. 2번째 인자로 몇단인지 String으로 받고 13번째 줄이서 이를 정수 값으로 바꾸어 주었다. 그리고 간단하게 GetCurrentProcess를 이용하여 해당 프로세스의 ID값을 읽고 해당 프로세스에서 구구단을 출력한다. 다음은 프로세를 호출하는 프로세스를 만든다. 전체 코드이다... (몇줄 안된다...) 먼저 선언부분이다. 5번 라인에서 보면 앞에서 만든 프로세스 이름이다. 그리고 17번과 19번 라인에서 정보를 받을것이라 명시하고..

[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..

728x90
반응형