ComputerBooks.ru - Электронные книги, самоучители.

 
Электронные кники доступные для скачивания
На главную Добавить в избранное Форма отправки почты Если книг читать не будешь - скоро грамоту забудешь!

43. FAQ o Win API

Q> Как сделать, чтобы мою прогу нельзя было бы убить? 
A> Я не пробовал,но imho от End Task это не спасет 

 From : Dmitry V. Liseev            

Делать неубиваемый процесс очень просто.
Перед тем, как убить винда сначала попытается завершить
его по-хорошему. Тут он и должен запустить свою копию
и передать ей все нужные данные перед благополучным
завершением.

LRESULT WINAPI WndProc(HWND hWnd, UINT msg,
     WPARAM wParam, LPARAM lParam)
{
  switch(msg)
  {
     //HANDLE_MSG(hWnd, WM_CREATE, WndProc_OnCreate);
     HANDLE_MSG(hWnd, WM_DESTROY, WndProc_OnDestroy);
     //HANDLE_MSG(hWnd, WM_SIZE, WndProc_OnSize);
     //HANDLE_MSG(hWnd, WM_COMMAND, WndProc_OnCommand);
     default:
        return DefWindowProc(hWnd, msg, wParam, lParam);
  }
}

void WndProc_OnDestroy(HWND hWnd)
{
  STARTUPINFO si;
  PROCESS_INFORMATION pi;

  // Создадим другой процесс, а этот благополучно завершим.
  memset(&si, 0, sizeof(STARTUPINFO));
  si.cb = sizeof(STARTUPINFO);
  CreateProcess(NULL, "program.exe", NULL, NULL,
      FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
  CloseHandle(pi.hThread);
  CloseHandle(pi.hProcess);
  PostQuitMessage(0);
  //return FORWARD_WM_DESTROY(hWnd, DefWindowProc);
}

2000(c)

Электронные Книги по компьютерным программам
На правах рекламы:
-->

Для добавления страницы электронной книги в избранное нажмине Ctrl+D

Книги | Статьи | Скачать

Правовая информация   

  © ComputerBooks.ru,
  При копировании материалов со страницы обязательно разместите ссылку на источник.