// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <time.h>
//버퍼 그래픽 카드의 해상도 만큼을 돌려준다.
char Buffer[1280*1024*4];
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE handle, hFile;
DWORD ret;
SYSTEMTIME st;
TCHAR dirPath[50];
TCHAR dirPathFull[100];
time_t old_time = time(NULL);
time_t new_time;
int cnt = 0;
printf("아무키나 누르면 시작합니다.\r\n");
getch();
while(cnt < 10)
{
handle = CreateFile( L"\\\\.\\BABO", GENERIC_READ|GENERIC_WRITE
, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL
, 0 ); // 드라이버가 준비한 "\Device\SIMPLE"에 대한 동의어! 즉, "\DosDevices\BABO"를 사용해서, 접근을 시도한다
memset( &Buffer[0], 0, 1280*1024*4 ); // 버퍼를 초기화한다, 버퍼를 100byte 만큼 0으로 초기화 한다.
//// Application이 달라교 요청을 해야지만 드라이버가 메모리에 전해줄 내용을 넣어서 전달한다.
//// 드라이버는 자체적으로 Application 에 무언가를 전달 할 수 없다.
//// WriteFile도 마찬가지이다. (무조건 Application 이 주이다.)
ReadFile(handle, &Buffer[0],1280*1024*4, &ret, NULL); //ReadFile 버퍼를 100byte 만큼 읽어온다.
GetLocalTime(&st);
int Year = st.wYear;
int Month = st.wMonth;
int Day = st.wDay;
int Hour = st.wHour;
int Minute = st.wMinute;
int Second = st.wSecond;
//디렉토리 생성
wsprintf(dirPath, L"c:\\%d%02d%02d\\", Year, Month, Day);
CreateDirectory(dirPath, NULL);
//디렉토리를 포함하는 fullPath 를 생성해서 dirpathFull 에 넣는다.
wsprintf(dirPathFull, L"c:\\%d%02d%02d\\%d%02d%02d%02d%02d%02d.bmp", Year, Month, Day, Year, Month, Day, Hour, Minute, Second);
//해당 파일을 쓴다.
hFile=CreateFile(dirPathFull,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
WriteFile(hFile,Buffer,1280*1024*4, &ret, NULL);
CloseHandle(hFile);
//파일생성완료(화면에 출력)
_tprintf(dirPathFull);
printf("파일을 생성했습니다. \r\n");
Sleep(2000);
cnt++;
}
printf("아무키나 누르면 종료합니다.\r\n");
getch();
CloseHandle( handle ); // 접근을 그만 두겠다는 의미로 사용했던 드라이버핸들을 닫는다
return 0;
}
댓글 영역