Системное программирование в среде Windows - [211]
>#define LUSIZE 1024
>#define ACCT_NAME_SIZE LUSIZE
>/* JobMgt.h — Определения, необходимые для управления задачами. Глава 6. */
>/* Код выхода для программы управления задачами в случае прекращения их выполнения. */
>#define JM_EXIT_CODE 0x1000
>typedef struct _JM_JOB {
> DWORD ProcessId;
> TCHAR CommandLine[MAX_PATH];
>} JM_JOB;
>#define SJM_JOB sizeof (JM_JOB)
>/* Функции управления задачами. */
>DWORD GetJobNumber(PROCESS_INFORMATION *, LPCTSTR);
>BOOL DisplayJobs(void);
>DWORD FindProcessId(DWORD);
>BOOL GetJobMgtFileName(LPTSTR);
>/* Определения для программ, обеспечивающих клиент-серверное взаимодействие*/
>/* Сообщения запроса и ответа. Сообщения имеют кодировку ASCII, поскольку запрос может поступать от системы Windows 95. */
>#define MAX_RQRS_LEN 0x1000
>typedef struct {
> DWORD32 RqLen; /* Размер структуры запроса, исключая размер этого поля. */
> CHAR Command;
> BYTE Record[MAX_RQRS_LEN];
>} REQUEST;
>typedef struct {
> DWORD32 RsLen; /* Размер структуры ответа, исключая размер этого поля*/
> CHAR Status;
> BYTE Record[MAX_RQRS_LEN];
>} RESPONSE;
>#define RQ_SIZE sizeof(REQUEST)
>#define RQ_HEADER_LEN RQ_SIZE-MAX_RQRS_LEN
>#define RS_SIZE sizeof(RESPONSE)
>#define RS_HEADER_LEN RS_SIZE-MAX_RQRS_LEN
>/* Структура почтового сообщения. */
>typedef struct {
> DWORD msStatus;
> DWORD msUtilization;
> TCHAR msName[MAX_PATH];
>} MS_MESSAGE;
>#define MSM_SIZE sizeof(MS_MESSAGE)
>#define CS_TIMEOUT 5000 /* Интервал ожидания для взаимодействия через именованный канал и мониторинга производительности. */
>#define MAXCLIENTS 10
>#define MAX_SERVER_TH 4 /* Максимальное количество серверных потоков для программы serverNPCP.*/
>#define MAX_CLIENTS_CP 16 /* Максимальное количество клиентов для программы serverNPCP.*/
>/* Имена серверных и клиентских каналов и почтовых ящиков. */
>#define SERVER_PIPE _Т("\\\\.\\PIPE\\SERVER")
>#define CLIENT_PIPE _T("\\\\.\\PIPE\\SERVER")
>#define SERVERBROADCAST _T("SrvrBcst.exe")
>#define MS_SRVNAME _T("\\\\.\\MAILSLOT\\CLS_MAILSLOT")
>#define MS_CLTNAME _T("\\\\.\\MAILSLOT\\CLS_MAILSLOT")
>#define MX_NAME _T("ClientServerMutex")
>#define SM_NAME _T("ClientServerSemaphore")
>/* Команды для функции поддержки статистики. */
>#define CS_INIT 1
>#define CS_RQSTART 2
>#define CS_RQCOMPLETE 3
>#define CS_REPORT 4
>#define CS_TERMTHD 5
>/* Функции поддержки клиент-серверной системы. */
>BOOL LocateServer(LPTSTR);
В программе А.6 определяются многочисленные переменные, позволяющие исключить определения, которые не требуются для примеров программ, приведенных в данной книге. Этот вопрос подробно обсуждается в [30].
>/* Exclude.h — Определения переменных для исключения ненужных заголовочных файлов. За дополнительными разъяснениями обратитесь в [30]. */
>#define WIN32_LEAN_AND_MEAN
>/* Весьма эффективная мера, уменьшающая размер предварительно скомпилированного заголовочного файла (pch) почти в два раза. */
>/* Эти определения также уменьшают размер pch-файла и уменьшают время компиляции. Все программы в данной книге будут компилироваться с этими определениями. От использования средств защиты можно отказаться при помощи оператора #define NOSECURITY. */
>#define NOATOM
>#define NOCLIPBOARD
>#define NOCOMM
>#define NOCTLMGR
>#define NOCOLOR
>#define NODEFERWINDOWPOS
>#define NODESKTOP
>#define NODRAWTEXT
>#define NOEXTAPI
>#define NOGDICAPMASKS
>#define NOHELP
>#define NOICONS
>#define NOTIME
>#define NOIMM
>#define NOKANJI
>#define NOKERNEL
>#define NOKEYSTATES
>#define NOMCX
>#define NOMEMMGR
>#define NOMENUS
>#define NOMETAFILE
>#define NOMSG
>#define NONCMESSAGES
>#define NOPROFILER
>#define NORASTEROPS
>#define NORESOURCE
>#define NOSCROLL
>#define NOSERVICE
>#define NOSHOWWINDOW
>#define NOSOUND
>#define NOSYSCOMMANDS
>#define NOSYSMETRICS
>#define NOSYSPARAMS
>#define NOTEXTMETRIC
>#define NOVIRTUALKEYCODES
>#define NOWH
>#define NOWINDOWSTATION
>#define NOWINMESSAGES
>#define NOWINOFFSETS
>#define NOWIMSTYLES
>#define OEMRESOURCE
Дополнительные служебные программы
Имеются три дополнительных программы, а именно, Options, SkipArg и GetArgs, которые достаточно полезны, чтобы привести здесь их листинги. В то же время, ни одна из этих программ не привязана жестко к Win32.
Эта функция просматривает командную строку в поиске слов, начинающихся с символа "-" (дефис), проверяет отдельные символы и устанавливает булевские параметры. Хотя эта функция и аналогична UNIX-функции getopt, она обладает меньшими возможностями.
>/* Служебная функция для извлечения флагов опций из командной строки. */
>#include "EvryThng.h"
>#include
>DWORD Options(int argc, LPCTSTR argv[], LPCTSTR OptStr, ...)
>/* argv — командная строка. Параметры (опции), если они нужны, начинаются с символа '-' в argv[1], argv[2], ….
>OptStr — текстовая строка, содержащая все возможные параметры, находящиеся во взаимно-однозначном соответствии с адресами булевских переменных в списке аргументов (...). Эти флаги устанавливаются тогда и только тогда, когда символ соответствующей опции встречается в argv[1], argv[2], …Возвращаемым значением является индекс (в argv) первого аргумента, указанного вслед за опциями. */
Сценарии командной оболочки помогают системным администраторам и программистам автоматизировать рутинные задачи с тех самых пор, как появились первые компьютеры. С момента выхода первого издания этой книги в 2004 году многое изменилось, однако командная оболочка bash только упрочила свои лидирующие позиции. Поэтому умение использовать все ее возможности становится насущной необходимостью для системных администраторов, инженеров и энтузиастов. В этой книге описываются типичные проблемы, с которыми можно столкнуться, например, при сборке программного обеспечения или координации действий других программ.
В пособии излагаются основные тенденции развития организационного обеспечения безопасности информационных систем, а также подходы к анализу информационной инфраструктуры организационных систем и решению задач обеспечения безопасности компьютерных систем.Для студентов по направлению подготовки 230400 – Информационные системы и технологии (квалификация «бакалавр»).
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями shell.Для программистов-пользователей операционной системы UNIX.
Книга адресована программистам, работающим в самых разнообразных ОС UNIX. Авторы предлагают шире взглянуть на возможности параллельной организации вычислительного процесса в традиционном программировании. Особый акцент делается на потоках (threads), а именно на тех возможностях и сложностях, которые были привнесены в технику параллельных вычислений этой относительно новой парадигмой программирования. На примерах реальных кодов показываются приемы и преимущества параллельной организации вычислительного процесса.
Применение виртуальных машин дает различным категориям пользователей — от начинающих до IT-специалистов — множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение.В книге рассмотрены три наиболее популярных на сегодняшний день инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно «свежий» продукт — Parallels Workstation, созданный в компании Parallels.
Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. В ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows.