Windowsの再起動時にファイルを削除するには,MoveFileEx()
関数を使う:
MoveFileEx(<filename>, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
<filename>
には,このコードを実行する実行ファイル(自分自身)を指定することも可能。
DEVMODE temp;
#ifdef __STDC__
BOOL fullscreen(HWND hWnd);
#else
BOOL fullscreen();
#endif
BOOL
fullscreen(hWnd)
HWND hWnd;
{
DEVMODE devmode;
HDC hDC = GetDC(0);
temp.dmSize = sizeof(DEVMODE);
temp.dmPelsWidth = GetDeviceCaps(hDC, HORZRES);
temp.dmPelsHeight = GetDeviceCaps(hDC, VERTRES);
temp.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
if ((GetVersion() & 0x80000000) == 0)
{
temp.dmFields |= DM_DISPLAYFREQUENCY;
temp.dmDisplayFrequency = GetDeviceCaps(hDC, VREFRESH);
}
ReleaseDC(0, hDC);
/* main */
devmode = temp;
devmode.dmPelsWidth = 640;
devmode.dmPelsHeight = 480;
devmode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
if (SetWindowLong(hWnd, GWL_STYLE, WS_VISIBLE))
{
if (ChangeDisplaySettings(&devmode, CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL)
{
if (SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 640, 480, SWP_SHOWWINDOW))
{
return(TRUE);
}
}
}
return(FALSE);
}
fullscreen()
関数にウィンドウ・ハンドルを引数として渡せばフルスクリーン化される。プログラムを終了するときに:
ChangeDisplaySettings(&temp, 0);
をコールしてフルスクリーン状態を解除する必要がある。