#define STRICT
#include <windows.h>
#include <stdio.h>
#include <conio.h>

// ===========================================
// Функция WinMain
// ===========================================

#pragma argsused

int PASCAL
WinMain(HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPSTR     lpszCmdLine,
        int       nCmdShow)
{

   BYTE szBuf[128];
   int  cbBufSize;
   BYTE ch;

  // Инициализация интерфейса EasyWin
  _InitEasyWin();

  // Получаем путь к каталогу, в котором
  // установлена Windows
  GetWindowsDirectory(szBuf, cbBufSize);

  printf("Каталог Windows: %s\n\n", szBuf);

  printf("Нажмите:\n\n"
	 "R - перезапуск системы\n"
	 "W - перезапуск Windows\n"
	 "N - запуск Norton Commander и возврат в Windows\n\n"
	 "или любую другую клавишу ->\n" );

  ch = getch();

  if(ch == 'R' || ch == 'r')
  {
    // Перезагрузка компьютера
    if(!ExitWindows(EW_REBOOTSYSTEM, 0))
    {
      printf("Ошибка при завершении работы Windows");
    }
  }

  else if(ch == 'W' || ch == 'w')
  {
    // Перезапуск Windows
    if(!ExitWindows(EW_RESTARTWINDOWS, 0))
    {
      printf("Ошибка при завершении работы Windows");
    }
  }

  else if(ch == 'N' || ch == 'n')
  {
    // Временное завершение работы Windows,
    // запуск программы MS-DOS, затем
    // снова запуск Windows
    if(!ExitWindowsExec("g:\\nc\\nc.exe", NULL))
    {
      printf("Ошибка при завершении работы Windows");
    }
  }

  return 0;
}
