Вывод списка фоновых задач

Вывод списка фоновых задач

Программа 6.5 реализует функцию управления задачами DisplayJobs.

Программа 6.5. JobMgt: отображение списка активных задач 

BOOL DisplayJobs(void)

/* Просмотреть файл базы данных, сообщить статус задачи. */

{

 HANDLE hJobData, hProcess;

 JM_JOB JobRecord;

 DWORD JobNumber = 0, nXfer, ExitCode, FsLow, FsHigh;

 TCHAR JobMgtFileName[MAX_PATH];

 OVERLAPPED RegionStart;

 GetJobMgtFileName(JobMgtFileName);

 hJobData = CreateFile(JobMgtFileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

 RegionStart.Offset = 0;

 RegionStart.OffsetHigh = 0;

 RegionStart.hEvent = (HANDLE)0;

 FsLow = GetFileSize(hJobData, &FsHigh);

 LockFileEx(hJobData, LOCKFILE_EXCLUSIVE_LOCK, 0, FsLow, FsHigh, &RegionStart);

 __try {

  while(ReadFile(hJobData, &JobRecord, SJM_JOB, &nXfer, NULL) && (nXfer > 0)) {

   JobNumber++;

   if (JobRecord.ProcessId == 0) continue; 

   hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, JobRecord.ProcessId);

   if (hProcess != NULL) GetExitCodeProcess(hProcess, &ExitCode);

   _tprintf(_T(" [%d] "), JobNumber);

   if (hProcess == NULL) _tprintf(_T(" Готово"));

   else if (ExitCode != STILL_ACTIVE) _tprintf(_T("+ Готово"));

   else _tprintf(_T(" "));

   _tprintf(_T(" %s "), JobRecord.CommandLine);

   /* Удалить процессы, которые в системе уже не присутствуют. */

   if (hProcess == NULL) {

    /* Зарезервировать одну запись. */

    SetFilePointer(hJobData, –(LONG)nXfer, NULL, FILE_CURRENT);

    JobRecord.ProcessId = 0;

    WriteFile(hJobData, &JobRecord, SJM_JOB, &nXfer, NULL);

   }

  } /* Конец цикла while. */

 } /* Конец __try-блока. */

 __finally {

  UnlockFileEx(hJobData, 0, FsLow, FsHigh, &RegionStart);

  CloseHandle(hJobData);

 }

 return TRUE;

}

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

PNG и проблема соответствия для фоновых CSS-изображений

Из книги Разгони свой сайт автора Мациевский Николай

PNG и проблема соответствия для фоновых CSS-изображений К несчастью, поддержка возможностей PNG-гаммы и цветовой коррекции не является кроссбраузерной. Наиболее часто рекомендуемой мерой для исправления возможных ошибок будет исключение фрагментов, обеспечивающих гамму и


A.1. Вывод списка правил

Из книги Iptables Tutorial 1.1.19 автора Andreasson Oskar

A.1. Вывод списка правил Чтобы вывести список правил нужно выполнить команду iptables с ключом L, который кратко был описан ранее в главе Как строить правила. Выглядит это примерно так:iptables -LЭта команда выведет на экран список правил в удобочитаемом виде. Номера портов будут


Экспорт списка контактов

Из книги Skype: бесплатные звонки через Интернет. Начали! автора Гольцман Виктор Иосифович

Экспорт списка контактов У пользователей Skype есть возможность передать другим абонентам Skype свои контакты. В данной процедуре нет ничего сложного, и сейчас вы узнаете, как это сделать.1. Для начала выберите команду меню Инструменты ? Отправить список контактов, на экране


Поиск задачи в файле списка задач

Из книги Macromedia Flash Professional 8. Графика и анимация автора Дронов В. А.

Поиск задачи в файле списка задач Программа 6.6 представляет последнюю функцию управления задачами, FindProcessID, которая получает идентификатор процесса, соответствующего задаче с указанным номером. В свою очередь, идентификатор процесса может использоваться вызывающей


Получение списка аргументов

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Получение списка аргументов Многие VBA-процедуры требуют, чтобы при их выполнении были определены один или несколько аргументов. Такие процедуры используют в своих вычислениях (или других выполняемых ими действиях) информацию, содержащуюся в этих аргументах. Подобно


4.3.3. Создание списка задач, принятых к исполнению

Из книги CSS3 для веб-дизайнеров автора Сидерхолм Дэн

4.3.3. Создание списка задач, принятых к исполнению Каждый календарь может иметь свой набор задач, принятых к исполнению. Перечень задач отображается на панели, которая раскрывается нажатием на кнопку: Чтобы создать задачу, необходимо:1. Выбрать требуемый календарь на


Создание фоновых изображений

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Создание фоновых изображений Очень часто бывает необходимо, чтобы анимированный элемент изображения располагался поверх какого-либо фонового изображения (фона). В частности, такие фоны часто применяются в художественных фильмах.Как сделать фон во Flash? Очень


Пример 9-6. arglist: Вывод списка аргументов с помощью переменных $* и $@

Из книги iOS. Приемы программирования автора Нахавандипур Вандад

Пример 9-6. arglist: Вывод списка аргументов с помощью переменных $* и $@ #!/bin/bash# Вызовите сценарий с несколькими аргументами, например: "один два три".E_BADARGS=65if [ ! -n "$1" ]then echo "Порядок использования: `basename $0` argument1 argument2 и т.д." exit $E_BADARGSfiechoindex=1echo "Список аргументов в переменной "$*":"for arg in


Несколько фоновых изображений

Из книги автора

Несколько фоновых изображений CSS3 дает возможность поставить несколько фоновых изображений на один элемент (разделяя их запятыми) вместо всего лишь одной картинки согласно спецификации CSS2.1. Поддерживается в Safari 1.3+, Chrome 2+, Firefox 3.6+, Opera 10.5+ и IE9 Beta. Пример:body { background: url(image1.png)


Оформление списка

Из книги автора

Оформление списка Первые фрагменты оформления отцентрируют картинки в футере и поместят их горизонтально (рис. 3.18): Рис. 3.18. Белые PNG, отцентрированные в футере #footer-logos {  text-align: center; }#footer-logos li { display: inline; }Теперь выставим такие значения свойства opacity, которые затемнят


18.5.2. Вывод на экран строки списка

Из книги автора

18.5.2. Вывод на экран строки списка Ниже приводится цикл for, список которого содержит строку значений "orange red blue grey". Для каждой переменной указана команда echo, в качестве параметра имя_переменной указывается loop. Команда echo с помощью части $LOOP выводит на экран каждое значение


29.5.3. Заполнение списка

Из книги автора

29.5.3. Заполнение списка Если HTML–страницы являются действительно динамическими, следует предусмотреть возможность заполнения списков или таблицы текущими данными, выбранными из существующего файла, вместо того, чтобы жестко кодировать эти данные в сценариях


7.16. Активизация фоновых методов

Из книги автора

7.16. Активизация фоновых методов Постановка задачи Необходимо найти простой способ создания потоков так, чтобы с потоками не приходилось работать