Ресурсы в приложениях windows


Содержание

: Программирование в среде X Window на основе библиотеки Xlib :

С о д е р ж а н и е

Ресурсы программ

Многие программы имеют различные заранее подготавливаемые данные, которые в терминах X называются — ресурсами. Это могут быть цвета окон приложения, строки сообщений пользователю и т.д.

Как правило, программисты создают ресурсы каждый по-своему. В X Window сделана попытка унифицировать этот процесс.

Формат файла ресурсов

В X файл ресурсов есть обычный текстовый файл, каждая строка которого задает тот или иной параметр (ресурс) программы. (При этом предполагается, что программу «населяют» именованные объекты, связанные в некоторую иерархию). Общий вид строки следующий:

Подобная строка задает значение ресурса для подобъектов иерархии объектов программы. Например, запись

говорит, что в программе ProgramName у объекта с именем DialogWindow параметр Background (цвет фона) имеет значение Red (красный цвет).

Вместо имен объектов могут указываться их классы. Обычно класс имеет то же самое имя, что и объект, но начинается с заглавной буквы, например,

Часть объектов или классов в левой части строки, задающей ресурс, может заменяться символом ‘*’, например, строка

указывает, что для всех объектов программы myprog ресурс background имеет значение Red .

Связка с помощью символа ‘.’ имеет больший приоритет, чем связка с помощью ‘*’. Так, если в файле, задающем ресурсы, есть две строки

то все объекты программы будут иметь ресурс background равный Red , кроме объекта dialogwnd , для которого этот параметр есть Green .

Доступ к ресурсам программ

Пусть ресурсный файл подготовлен. Для доступа к данным X Window предоставляет набор функций, которые совокупно называются менеджер ресурсов (Resource Manager), и специальную программу xrdb , которая позволяет считать любой ресурсный файл и включить его в общую таблицу ресурсов сервера. Последняя называется базой данных ресурсов сервера, и представляет собой область памяти, ассоциированную со свойством (property) XA_RESOURCE_MANAGER корневого окна экрана дисплея.

Наиболее простой является функция XGetDefault() . Она получает имя программы, имя ресурса и определяет значение последнего. При этом она последовательно совершает следующие шаги:

  • сначала ресурс ищется в базе данных сервера (в свойстве XA_RESOURCE_MANAGER);
  • если он не найден, то значение ресурса определяется по файлу «.Xdefaults», который ищется в домашней (home) директории пользователя;
  • если задана переменная среды XENVIRONMENT, то ресурс ищется в файле, на который указывает эта переменная.

Если ресурс одновременно встречается в » .Xdefaults » и файле, определяемом XENVIRONMENT , то берется последнее значение.

В примере, приводимом ниже, используется XGetDefault() , чтобы получить строку, которую надо напечатать в окне программы. Предполагается, что имя программы — » example «, а строка — ресурс с именем » MyResourse «, т.е. в файле » .Xdefaults » должна быть помещена, например, следующая запись:

Фрагмент программы, выполняющий чтение из файла ресурсов, будет выглядеть следующим образом:

После изменения файла » .Xdefaults » он должен быть обработан программой xrdb для того, чтобы X сервер включил в свою таблицу обновленные ресурсы.

Функция XGetDefault() проста в обращении, но не достаточно гибка. Так, например, с ее помощью нельзя прочитать содержимое произвольного файла ресурсов. Есть другие более развитые возможности.

Вызов функции XrmInitialize() инициализирует менеджер ресурсов. Обращение к этой функции предшествует вызовам остальных функций.

сканирует строку, с помощью которой вызвана программа, и «достает» из нее ресурсы и их значения, при этом создается специальная структура данных — база данных ресурсов. Ресурсы и их значения помещаются в нее. Указатель на базу данных передается программе через переменную db . Параметр programName содержит имя программы, argc — число опций в командной строке, argv — сами опции. Аргумент optRec определяет, как разбирать командную строку. optRecNum задает число элементов массива optRec .

В примере, приводимом ниже, определяется, что в командной строке опция » -bg » задает цвет фона; » -fg » — цвет переднего плана, а опция » -xrm » позволяет задать в командной строке любой ресурс программы.

Функция XrmGetFileDataBase() позволяет считать указанный ресурсный файл и создать по нему в памяти базу данных ресурсов. Функция

считывает ресурс с именем resName и классом resClass из базы данных *db . После возврата resType есть указатель на строку, указывающую тип ресурса. На само значение ресурса указывает resVal .

Функция XrmPutResource() сохраняет ресурс в базе данных. XrmPutFileDatabase() записывает базу данных ресурсов в файл.

Ресурсы приложения

На предыдущих лекциях мы довольно часто ссылались на такие ресурсы приложения, как курсоры и иконки, ранее мы познакомились более подробно с еще одной разновидностью ресурсов — битмапом. На примере битмапа мы рассмотрели основные правила применения ресурсов.

Сейчас несколько обобщим эти правила и рассмотрим несколько видов ресурсов более подробно. Для описания ресурсов мы должны сформировать файл описания ресурсов, имеющий расширение .RC. В этом файле перечисляются ресурсы, которые могут быть использованы приложением.

Описание ресурсов имеет следующий вид:

ResNameId TypeNameId [load-opt] [mem-opt] ResSource

Каждый ресурс должен иметь собственное уникальное имя или номер ResNameId и имя или номер типа ресурса TypeNameId.


Эти имена задаются либо текстом (имя), либо числом (номер), либо символическим именем (номер).

MYBITMAP BITMAP my_bmp.bmp

100 ICON my_ico.ico

MYDATA 500 my_data.dat

#define IconID 101

IconID ICON second.ico

(компилятор ресурсов может использовать директивы препроцессора C и включать заголовочные файлы .H, для задания символических имен).

Далее, при работе с ресурсами они будут загружаться из файла приложения в память. При этом для ресурса обычно выделяется блок глобальной памяти мы можем задать некоторые характеристики ресурса как блока памяти mem-opt и определять некоторые правила его загрузки load-opt.

load-opt, описывая правила загрузки, может быть:

PRELOAD ресурс должен загружаться в памяти при запуске приложения

LOADONCALL ресурс загружается только по требованию (используется по умолчанию)

mem-opt задает характеристики выделяемого блока и может быть:

FIXED ресурс должен размещаться в фиксированном блоке памяти

MOVEABLE ресурс размещается в перемещаемом блоке памяти (используется по умолчанию)

DISCARDABLE перемещаемый ресурс может быть удален из памяти (практически любой перемещаемый ресурс может быть удален, так как его содержимое не меняется)

Наконец, нам требуются данные этого ресурса ResSource. Некоторые виды ресурсов должны быть размещены в отдельном файле, в этом случае в качестве ResSource используется имя файла, другие виды ресурсов требуют непосредственного описания непосредственно в файле описания ресурсов, в этом случае ResSource может быть:

Иногда допускается либо использования файлов, либо непосредственное описание ресурсов. Некоторый “разнобой” может быть связан с применением компиляторов (и редакторов) ресурсов разных фирм — так как многие из них используют расширенные возможности.

Так, например, редактор ресурсов Borland WorkShop может описывать практически все ресуры непосредственно в файле описания ресурсов, включая их в виде дампа ресурса, а стандартные компилятор ресурсов Microsoft RC не допускает этого, например, для курсоров или битмапов. Компилятор ресурсов Symantec позволяет применять кавычки при задании имен ресурса или типа, что позволяет составлять имена из нескольких слов, что невозможно для Borland и Microsoft и т.д.

Windows предусматривает несколько стандартных типов ресурсов, а Вы можете легко описать ресурсы собственного типа, указав собственный тип (или номер, больший 255 — номера типов от до 255 зарезервированы Windows). При задании данных собственного ресурса Вы можете указать имя файла, содержащего этот ресурс — тогда этот файл включается в ресурс как он есть, либо описав в виде текста непосредственно в файле описания ресурсов:

“This is a 0-terminated string”, 1, 2, 3, 4, 5,

В качестве типа ресурса можно указать стандартный тип RCDATA, который соответствует включаемым в файл описания ресурсов данным пользователя в этом-же формате. Если Вы хотите получить доступ к Вашим ресурсам, то надо воспользоваться парой функций:

HRSRC FindResource( hInstance, lpszName, lpszType );

HGLOBAL LoadResource( hInstance, hrSrc );

Первая функция позволяет получить промежуточный хендл описания ресурса, а вторая — загрузить ресурс память и получить хендл глобального блока памяти, содержащего ресурс. Если Вы декларировали ресурс как LOADONCALL, то физическое размещение ресурса в памяти произойдет не при вызове функции LoadResource, а при непосредственном обращении к ресурсу.

Если для задания имен ресурса или типа вы использовали текст, то параметры lpszName и lpszType являются указателями на соответствующие строки; если же используются номера, то вы можете их указывать двумя способами — передав строку, начинающуюся на #, например, “#123”, либо разместив в младшем слове адреса нужный номер, а старшем . Последний механизм реализуется с помощью макроса:

LPSTR MAKEINTRESOURCE( nId );

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

LPVOID LockResource( hGlobResource );

и после доступа к данным разрешить его перемещение:

BOOL UnlockResource( hGlobResource );

(Это не отдельная процедура, а обычный GlobalUnlock). После использования ресурса его можно удалить с помощью процедуры:

BOOL FreeResource( hGlobResource );

Когда Вы применяете ресурсы какого-либо типа, предусмотренного Windows, то приходится применять несколько другие способы доступа к данным, связанные с необходимостью специальной обработки таких ресурсов. Можно выделить следующие основные типы ресурсов:

ACCELERATORS — таблица акселераторов клавиатуры; для загрузки применяется функция

HACCEL LoadAccelerators( hInstance, lpszAccName );


BITMAP — битмап, включенный в приложение для загрузки применяется функция

HBITMAP LoadBitmap( hInstance, lpszBitmapName );

CURSOR — ресурс, представляющий курсор мыши для загрузки применяется функция

HCURSOR LoadCursor( hInstance, lpszCursorName );

DIALOGдиалог с ресурсами типа DIALOG и с самими диалогами мы разберемся позже.

FONT — включение шрифтового ресурса о применении шрифтов мы говорили ранее. Включать ресурс этого типа в Ваше приложение следует специфическим способом, существенно отличающимся от остальных ресурсов.

ICON — иконка для загрузки применяется функция

HICON LoadIcon( hInstance, lpszIconName );

MENU — меню, которое может быть назначено к окну для загрузки применяется функция

HMENU LoadMenu( hInstance, lpszMenuName );

STRINGTABLE — таблица строк ресурс этого типа вообще не загружается целиком. Он представляет собой таблицу строк, имеющих идентификаторы, и обеспечивает доступ к конкретной строке по ее идентификатору. Реально ресурсу этого типа соответствует не блок данных в памяти, а, может быть, несколько — для каждых 16 строк (по порядку номеров) выделяется отдельный блок. Приложение может содержать только один ресурс этого типа, поэтому при описании таблицы строк в файле описания ресурсов ее имя не указывается — указывается только тип этого ресурса. Для доступа к строкам применяется функция

int LoadString( hInstance, idString, lpszBuff, nmaxCount );

Мы достаточно близко познакомились с ресурсами типа BITMAP и FONT; практически можно считать что мы знакомы и с ресурсами типа CURSOR и ICON, так как они описываются так_же, как и BITMAP. Сейчас нам надо лучше разобраться с тремя новыми типами — ACCELERARTORS, MENU и DIALOG.

Понятие ресурсов программ. Виды ресурсов. Работа с ресурсами. Меню. Окна диалога.

Ресурсы являются составной частью приложений для Windows. В них определяются такие объекты, как пиктограммы, курсоры, растровые образы, таблицы строк, меню, диалоговые окна и многие другие.

Для некоторых видов ресурсов система содержит предопределенные (стандартные) объекты.

Все нестандартные ресурсы должны быть определены в файле описания ресурсов (resource script), который является ASCII-файлом с расширением .rс. Хотя теоретически такой файл можно подготовить в обычном текстовом редакторе, подобная технология используется крайне редко, поскольку любая интегрированная среда содержит удобные редакторы ресурсов, максимально упрощающие и автоматизирующие этот процесс.

Файл описания ресурса транслируется компилятором ресурсов (файл rс.ехе в составе интегрированной среды). В результате образуется бинарный файл с расширением .res. При загрузке в память исполняемого кода программы Windows обычно оставляет ресурсы на диске. Потом они загружаются в память только по мере необходимости.

Меню, располагающееся ниже заголовка окна приложения, называется главным меню (main menu), или меню верхнего уровня. Главное меню относится ко всему приложению. Любое меню содержит пункты меню. Пункт меню обозначается на полосе меню своим именем — словом или короткой фразой. Различают два типа пунктов меню:

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

Пункт-подменю — это заголовок вызываемого меню следующего, более низкого уровня.

Диалоговое окно имеет вид всплывающего окна с одним или несколькими элементами управления (controls), которые являются для него дочерними окнами. Используя элементы управления, пользователь вводит текст, выбирает указанные опции (флажки, переключатели, элементы списка) и нажимает кнопки, вызывающие различные действия приложения.

От обычных окон диалоговые окна отличаются тем, что они создаются на базе предопределенного в Windows класса диалоговых окон. Оконная процедура этого класса обеспечивает обработку сообщений, поступающих в диалоговое окно, а также задает специфическое поведение элементов управления диалогового окна. Эту невидимую для программиста оконную процедуру иногда называют менеджером диалогового окна (dialog box manager). Менеджер диалогового окна передает многие сообщения в функцию, определенную в вашем приложении, которая называется процедурой диалогового окна, или просто диалоговой процедурой (dialog procedure).

Второе отличие диалоговых окон от обычных окон состоит в том, что они всегда связаны с шаблоном диалога, содержащим размеры окна, состав и расположение элементов управления.

Когда в программе вызывается модальное диалоговое окно, оно ожидает выполнения некоторого действия со стороны пользователя, прежде чем программа сможет продолжить свое выполнение. Пользователь не может переключиться между диалоговым окном и другими окнами программы. Он должен явно закрыть диалоговое окно, что обычно делается щелчком на кнопке ОК или Cancel. Однако пользователь может переключаться в другие программы, не закрыв диалоговое окно. Существует также специальный вид модальных диалоговых окон — системные модальные (system modal) окна, которые не позволяют переключаться даже в другие программы. Они сообщают о серьезных проблемах, и пользователь должен закрыть системное модальное окно, чтобы продолжить работу в Windows.

Немодальное диалоговое окно не приостанавливает выполнение программы. Оно может получать и терять фокус ввода. Это значит, что пользователь может свободно переключаться между диалоговым окном и другими окнами программы. Окна этого типа предпочтительней использовать в тех случаях, когда они содержат элементы управления, которые должны быть в любой момент доступны пользователю.

Дата добавления: 2015-01-29 ; просмотров: 25 ; Нарушение авторских прав

Блог о технологиях .NET

20 апреля 2013 г.

Использование ресурсов в приложениях WinJS

Ресурсы являются очень важной частью любого приложения, которое свободно распространяется. Благодаря ресурсам, приложение может подстраиваться под целевого пользователя, отображая надписи на его родном языке.

Особое значение локализация принимает при разработке Windows 8 приложений. Новая платформа для Windows 8 и сеть магазинов Windows Store позволили как никогда просто распространять свои приложения по всему миру.

В этой статье мы узнаем, как создавать ресурсные файлы в Windows Store JavaScript приложениях и использовать их в коде.


Самое распространённое использование ресурсов – локализация надписей на различных интерфейсах и системных сообщений. Все эти задачи попадают под категорию строковых ресурсов.

Создадим в проекте папку «strings». В этой папке будут хранится все строки ресурсы всех регионов. Добавим папку для английского языка «en-US». Теперь необходимо добавить в папку файл resources.resjson и заполнить его в формате JSON (ключ-значение):

Чтобы использовать созданные ресурсы в любом html теге используем атрибут data-win-res. Данный атрибут позволяет привязать ключ строки в ресурсах к любому свойству объекта:

Также можно получить значение ресурса по ключу из JavaScript кода:

И самое главное, если вы используете ресурсы в своем приложении необходимо вызвать следующий код после загрузки страницы:

Данный код инициализирует ресурсы, а также проходит DOM модель страницы, подставляя ресурсы в указанные свойства.

Кроме строк, от локализации могут зависеть и другие файлы, например картинки. Алгоритм действий аналогичный. Создадим папку «Images» в корне проекта, а в ней папку «en-US». В эту папку поместим картинку logo.png.

Готово, теперь данную картинку можно использовать в приложении следующий образом:

Или сформировать на нее ссылку в JavaScript коде:

Приложение само определит какая локализация сейчас включена и подставит картинку из соответствующей папки.

Вроде неплохо, но это еще не все, что умеет делать WinJS c картинками. Помимо выбора подходящей картинки для региона, WinJS умеет подставлять картинки пропорционально разрешению экрана. Создадим несколько картинок и поместим их в одну папку:

  1. images/logo.scale-100.png
  2. images/logo.scale-140.png
  3. images/logo.scale-180.png

Первая картинка – оригинальная, вторая – 140%, третья – 180%. Теперь в вашем приложении всегда будет подставляться нужная картинка, что позволит избежать эффекта растягивания изображения при разных размерах экрана пользователя.

Текущий контекст локализации определяется языком установленным в операционной системе. Пользователь может переключать системную локализацию в любой момент. Если в этот момент ваше приложение запущено – можно перехватить данное событие:

В обработчике нужно перезагрузить ресурсы приложения, обновив интерфейс.

Спасибо за внимание. Надеюсь эта статья позволит вам без проблем создавать мультиязычные приложения для Windows 8 и сполна пользоваться всеми преимуществами магазином приложений Windows Store. Полезные ссылки вы найдете ниже:

  1. Инструкция по использования ресурсов
  2. Пример приложения с локализацией

Ресурсы в традиционном приложении Windows

Страницы работы

Содержание работы

Ресурсы в традиционном приложении Windows

Каждому разработчику необходимо иметь представление о структуре и принципах функционирования традиционного Windows-приложения, созданного с помощью функций API (Application Programming Interface).

Все Windows-приложения являются программами, управляемыми событиями (event-driven applications). Последовательность обработки сообщений о событиях в системе определяется не программой, а самой системой. Все сообщения попадают в общую очередь. Некоторые из них система передает в очередь сообщений приложения. Приложение выполняет цикл ожидания сообщений. Как только придет сообщение, адресованное приложению, оно будет передано оконной процедуре. Все сообщения Windows имеют стандартные имена, многие из которых начинаются с префикса WM_ (Windows Message). Например, WM_PAINT именует сообщение о том, что необходимо перерисовать содержимое окна того приложения, которое получило это сообщение. Идентификатор сообщения WM_PAINT — это символьная константа, обозначающая некое число.

Эта модель выработки и прохождения сообщений объясняет структуру, принятую для всех Windows-приложений. Простейшее приложение состоит как минимум из двух функций:

¨ Функция WinMain (имя резервировано), которая содержит цикл выборки сообщений и выполняется первой в любом приложении;

¨ Оконная процедура, которую вызывает система, направляя ей соответствующие сообщения.

Имя оконной процедуры выбирается произвольно. Система Windows регистрирует это имя, связывая его с вашим приложением.

Проект Win32 Application

Создайте новый проект типа Win32 Application. Для этого:

1. Выберите команду File | New | Project.

2. Выберите тип проекта: Win32 Application, имя проекта: API, а также удобное для вас местоположение папки с проектом.

3. Согласитесь с выбором An empty project.

4. Выберите команду File | New. В появившемся диалоговом окне выберите страницу File.

5. Выберите тип файла: C++ Source File, имя файла: API. Не забудьте установить флажок: Add to project.

6. Создайте функцию WinMain и оконную процедуру, тексты которых приведены ниже.


Главной целью функцииWinMainявляется регистрация оконного класса, создание окна и запуск цикла ожидания сообщений. Несмотря на обилие кода, она выполняет только эти три действия.

#include // Файл заголовков для Windows приложений

LRESULT APIENTRY WndProc (HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain (HINSTANCE hInst, HINSTANCE, LPSTR, int nCmdShow)

char *sReg = «Строка регистрации»;

MSG msg; // Структура, содержащая описание сообщений

WNDCLASS w; // Структура атрибутов класса окна

w.hInstance = hInst; // Описатель экземпляра приложения

w.lpfnWndProc = WndProc; // Указатель на оконную процедуру

if (!RegisterClass (&w)) // Попытка зарегистрировать оконный класс

return FALSE; // Уход в случае неудач

// Создаем окно и запоминаем его описатель

HWND hWnd = CreateWindow(sReg,»My First Window»,

while (GetMessage(&msg,0,0,0)) // Цикл ожидания сообщений

TranslateMessage(&msg); // Трансляция сообщения (виртуальные коды в символы)

DispatchMessage(&msg); // Пересылка оконной процедуре

LRESULT APIENTRY WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)

static DWORD size = MAX_COMPUTERNAME_LENGTH + 1;

static char *sName = new char [size];

switch(msg) // Переход по сообщению

strcat(strcpy(buf,»Computer Name: «), sName);

TextOut(hdc, 20, 20, buf, strlen(buf));

default: // Процедура по умолчанию

После ввода текста программы запустите приложение (Ctrl+F5). Вы должны увидеть окно с заголовком «My First Window», со значком, данным нам по умолчанию и загруженным из исполняемого кода приложения (файла API.exe), с системным меню, присутствующим по умолчанию. Понятие класс окон появилось до того, как появились классы C++. Поэтому структура WNDCLASS не имеет ничего общего с классами MFC. Она является типом структур языка С. Каждое Windows-приложение должно зарегистрировать свои атрибуты, а регистрация опирается на поля структуры WNDCLASS. Она своими полями определяет некий шаблон или модель поведения для всех окон данного класса. В полях структуры вы указываете эти атрибуты: имя ресурса меню, набор битов для описания стиля окна, где взять изображения курсора и значка, адрес исполняемого модуля приложения, адрес оконной процедуры и т. д.

Эту «неинтересную» работу и выполняет большая часть кодов функции WinMain. Программируя с помощью библиотеки MFC, требуется значительно меньше усилий для создания окна, так как в этом случае используется один из пяти уже зарегистрированных классов окна. Пример проливает свет на то, что делают методы классов MFC, избавляя нас от рутинной работы.

Как задать повторно используемые ресурсы в Windows Phone 7

Нередко в приложении требуется задать ресурсы, которые будут использоваться в различных местах приложения повторно. Это, например, могут быть фирменные цвета приложения, изображения и т.д. В этой заметке я покажу как это сделать.

Для каждого элемента управления Windows Phone 7 (наследника объекта FrameworkElement ) существует свойство Resources , которое может содержать ресурсы для этого элемента управления. Ресурсы наследуются для вложенных элементов, т.е. для дочернего элемента управления вы можете использовать ресурсы родительского элемента. При этом каждый ресурс обладает уникальным именем – ключом.

Для всего приложения также определено свойство Resources , которое может содержать ресурсы. При этом, размещая ресурсы в этом месте, они становятся доступными для каждого элемента. Ресурсы приложения определяются в файле App.xaml следующим образом:

После определения глобальных ресурсов их можно использовать при описании элементов управления в приложении:

Кстати, в Windows Phone 7 доступны ресурсы текущей темы, адаптируемые под визуальные настройки самой ОС. На MSDN приведен полный список ключей, которые можно использовать так же, как приведено выше.

Полезные системные инструменты “скрытые” в Windows

Несомненно, любой продвинутый пользователь имеет в своем распоряжении любимые программы и утилиты, по таким категориям софта как диагностика, оптимизация, восстановление и очистка системы. Предпочтения к тем или иным программам складываются со временем, в основе этого хорошая работа по “специальности”, безглючность, простота управления, бесплатность и обновляемость.

Используя сторонний софт, мы даже и не задумываемся о возможностях уже встроенных системных приложений операционной системы Windows различных версий. Рассмотрим самые нужные системные приложения, утилиты и команды.


Средства диагностики памяти Windows

В операционной системе Windows есть встроенный инструмент проверки и диагностики оперативной памяти. Запустив проверку утилита, перезагрузит компьютер и протестирует память на ошибки перед запуском операционной системы, как популярное приложение MemTest86.

Используя приложение Средства диагностики памяти Windows”, вы больше не будете нуждаться в стороннем программном обеспечение. Хотя коммерческие аналоги имеют более дружественный интерфейс и информативность, но самое главное это результат: глючит память или нет, а с этим встроенная утилита справляется великолепно.

Чтобы не делать одинаковые скриншоты ко всем приложениям и командам, пожалуйста используйте первый рисунок в качестве примера!

Монитор ресурсов

Монитор ресурсов Windows — это системное приложение, при помощи которого можно просматривать сведения об использовании процессора, памяти, диска, сети и программных ресурсов в режиме реального времени.

Можно фильтровать и отслеживать результаты для конкретных процессов или служб. Кроме того, монитор ресурсов позволяет запускать, останавливать, приостанавливать и возобновлять процессы и службы, а также устранять неполадки в случаях, когда приложение не отвечает.

Альтернативный способа запуска: Нажмите кнопку Пуск — Все программы – Стандартные – Служебные — Монитор ресурсов.

Системный монитор

Системный монитор Windows — это оснастка консоли управления (MMC), предоставляющая средства анализа производительности системы. С помощью одной консоли пользователь может в реальном времени осуществлять контроль над производительностью приложений и оборудования, выбирать данные, которые будут сохраняться в файлах журналов, задавать пороговые значения для оповещений и автоматических действий, генерировать отчеты и просматривать историю производительности системы, используя различные способы сортировки.

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

Управление компьютером и соответствующие служебные программы

Консоль управления Microsoft (MMC) группирует средства администрирования, которые используются для администрирования сетей, компьютеров, служб и других системных компонентов.

Входящие в состав консоли инструменты администрирования, могут запускаться как отдельное приложение. Однако очень удобно открыв одно окно, получить доступ сразу ко всем приложениям, рассмотрим по подробнее.

Планировщик заданий — это оснастка MMC, позволяющая назначать автоматически выполняемые задания, запуск которых производится в определенное время или при возникновении определенных событий. Планировщик заданий содержит библиотеку всех назначенных заданий, обеспечивая возможность быстрого просмотра и удобного управления заданиями. Из библиотеки можно запустить, отключить, изменить и удалить задание. Пользовательский интерфейс планировщика заданий заменил расширение Scheduled Tasks Explorer в Windows XP, Windows Server 2003 и Windows 2000.

Просмотр событий — представляет собой оснастку консоли управления Microsoft (MMC) и предназначена для просмотра и управления журналами событий. Это незаменимый инструмент для наблюдения за работоспособностью системы и устранения возникших неполадок.

Общие папки — С помощью оснастки консоли управления MMC можно выполнять централизованное управление общими папками на компьютере. Оснастка «Общие папки» позволяет создавать общие ресурсы и устанавливать разрешения на доступ к ним, просматривать открытые файлы и пользователей, подключенных к общим папкам, а также управлять ими.

Локальные пользователи и группы — служит для защиты и управления учетными записями пользователей и групп, размещенных локально на компьютере. Можно назначать разрешения и права для учетной записи локального пользователя или группы на определенном компьютере (и только на этом компьютере).

Использование оснастки «Локальные пользователи и группы» позволяет ограничить возможные действия пользователей и групп путем назначения им прав и разрешений. Право дает возможность пользователю выполнять на компьютере определенные действия, такие как архивирование файлов и папок или завершение работы компьютера. Разрешение представляет собой правило, связанное с объектом (обычно с файлом, папкой или принтером), которое определяет, каким пользователям и какой доступ к объекту разрешен.

Диспетчер устройств — отображает установленное на компьютере оборудование в графическом представлении. Все устройства взаимодействуют с ОС Windows посредством программы, называемой драйвером устройства. С помощью диспетчера устройств можно устанавливать и обновлять драйвера аппаратных устройств, изменять параметры этих устройств и устранять неполадки в их работе.

Диспетчер устройств позволяет просматривать список установленного на компьютере оборудования и настраивать свойства перечисленных в этом списке устройств.

Управление дисками — это системная служебная программа для управления жесткими дисками и содержащимися на них разделами или томами. Эта программа позволяет инициализировать диски, создавать тома, форматировать их в файловые системы FAT, FAT32 или NTFS.

Управление дисками позволяет выполнять большинство операций с дисками без перезагрузки системы или прерывания работы пользователей. Большинство изменений конфигурации вступают в действие немедленно. Кроме того, для выполнения задач управления дисками вместе с другими программами командной строки можно применять команду DiskPart.

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

Службы и приложения – это оснастка консоли управления (ММС), которую можно использовать для управления службами, запущенными на локальном или удаленных компьютерах, чтобы, например, запустить или остановить службу. Службами также можно управлять с помощью команды sc config.

Служба — это тип приложения, которое работает в фоновом режиме без пользовательского интерфейса и похоже на процесс управляющей программы UNIX. Службы обеспечивают ключевые возможности операционной системы, например: Web-обслуживание, ведение журналов, печать, шифрование и отчеты об ошибках.

Альтернативный способа запуска: Нажмите кнопку Пуск — Панель управления — Администрирование — Управление компьютером.

Учетные записи пользователей

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

Применение учетных записей позволяет нескольким пользователям работать на одном компьютере с использованием собственных файлов и параметров. Для доступа к учетной записи используется имя пользователя и пароль. В стандартных и домашних версиях операционной системы отсутствует пункт “Локальные пользователи и группы”.

Очистка диска

Встроенная утилита Очистка диска существует, но немногие знают об этом. Если Вы хотите безопасно очистить операционную систему Windows от ненужных файлов, таких как: временные, системные, удаленные, копии, кеш интернет браузеров и других, то для повышения быстродействия компьютера используйте эту утилиту.

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

Альтернативный способа запуска: Нажмите кнопку Пуск – Все программы – Стандартные – Служебные – Очистка диска.

Редактор локальной групповой политики


Редактор локальной групповой политики доступен только в профессиональных или расширенных версиях операционной системы Windows. Существующий системный инструмент позволяет редактировать объекты локальной групповой политики, хранимые на компьютере. Содержит большое разнообразие настроек, которые так необходимы системным администраторам и не только, для работы в сети.

Например, на Windows 8, редактор групповой политики может использоваться, для отключения экрана блокировки и запуска непосредственно на экран входа в систему.

Редактор реестра

Редактор реестра позволяет добавлять и редактировать разделы и параметры, восстанавливать реестр из резервной копии или восстанавливать значения по умолчанию, а также импортировать или экспортировать разделы или нужную информацию.

Сведения о настройках системы хранятся централизованно в иерархической базе данных, называемой реестром.

Можно также выводить реестр на печать и управлять тем, какие учетные записи имеют право редактировать реестр. Работа с редактором реестра операционной системы Windows достаточно известна, однако запустить его простым нажатием на ярлыке не получится, для предотвращения ошибочных действий начинающих пользователей.

Конфигурации системы

Конфигурации системы — это дополнительный инструмент, для определения проблем, возникающих при работе и запуске операционной системы Windows. На вкладке “Службы и Автозагрузка” можно отключать службы и автоматически загружаемые программы, а затем включать их по одной. Если проблема не возникает, когда служба отключена, но появляется после ее включения, значит эта служба может быть источником проблемы.

На вкладке “Загрузка” можно настроить загрузчик, это особенно полезно для многовариантной загрузки двух и более операционных систем. Вкладка “Сервис” позволить запустить одним нажатием кнопки любую из 18 встроенных системных программ Windows.

Сведения о системе

Сведения о системе – отображает подробные сведения о конфигурации оборудования, компонентах и программном обеспечении компьютера, включая драйверы.

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

И так вы познакомились с наиболее важными системными инструментами встроенными в операционную систему Windows, они доступны на любом компьютере с Windows, их всегда можно использовать без дополнительной загрузки и установки. Теперь вы знаете что они существуют и как их запускать, выбор за вами использовать их или нет.

Ресурсы приложения

Большую часть пользовательского интерфейса любого приложения составляют ресурсы – меню, диалоговые панели, пиктограммы, курсоры. Создавая приложение, MFC AppWizard подготавливает для него базовый набор ресурсов. Вы можете редактировать подготовленные для вас ресурсы по своему усмотрению, а также добавлять в проект новые ресурсы.

Все ресурсы приложения хранятся в отдельном каталоге. Этот каталог называется RES и располагается в главном каталоге проекта. Однако нет необходимости каждый раз вручную открывать файлы с ресурсами. Для этого надо использовать средства, предоставляемые средой Visual C++.

Просмотреть ресурсы приложения можно в окне Project Workspace на странице ResourceView. Ресурсы приложения представлены в виде дерева и разделяются по типам. Чтобы просмотреть ресурсы определенного типа, надо установить курсор на символ

MFC AppWizard автоматически создает несколько различных ресурсов для приложения Dialog. Вы можете просмотреть эти ресурсы в окне Project Workspace, выбрав страницу ResourceView. Как видите ресурсы приложения включают две диалоговые панели, пиктограмму, таблицу строк и информацию о версии приложения. Рассмотрим эти ресурсы подробнее.

Диалоговые панели приложения Dialog

Диалоговые панели имеют идентификаторы IDD_DIALOG_DIALOG и IDD_ABOUTBOX. Диалоговая панель IDD_DIALOG_DIALOG – это и есть главная диалоговая панель приложения. Она будет отображаться на экране монитора сразу после запуска приложения.

Просмотрите внешний вид диалоговой панели IDD_DIALOG_DIALOG в редакторе ресурсов. Для этого сделайте двойной щелчок по ее названию в окне Project Workspace. Изначально эта панель содержит только две кнопки OK и Cancel, а также короткую текстовую строку. Впоследствии вы можете изменять эту панель, добавляя к ней новые органы управления.

Вторая диалоговая панель IDD_ABOUTBOX содержит информацию о приложении – его название, авторские права, год разработки и пиктограмму. Эта панель будет отображаться на экране, когда пользователь выберет строку About из системного меню главной диалоговой панели приложения.

Вы можете изменить диалоговую панель IDD_ABOUTBOX по своему усмотрению. Так например, вы можете добавить к ней вашу фамилию и адрес электронной почты.

Ниже мы привели фрагменты из файла ресурсов приложения Dialog, в которых определяются шаблоны диалоговых панелей IDD_ABOUTBOX и IDD_DIALOG_DIALOG.

// Шаблоны диалоговых панелей приложения

IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 217, 55

STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU

CAPTION «About Dialog»

FONT 8, «MS Sans Serif»

LTEXT «Dialog Version 1.0», IDC_STATIC,40,10,119,8,SS_NOPREFIX

LTEXT «Copyright © 1996», IDC_STATIC, 40, 25, 119, 8

IDD_DIALOG_DIALOG DIALOGEX 0, 0, 185, 92

FONT 8, «MS Sans Serif»

LTEXT «TODO: Place dialog controls here.», IDC_STATIC,5,34,113,8

В файле ресурсов приложения указана единственная пиктограмма, имеющая идентификатор IDR_MAINFRAME. Эта пиктограмма содержится в файле Dialog.ico, в каталоге res.


IDR_MAINFRAME ICON DISCARDABLE «res\Dialog.ico»

Пиктограмма IDR_MAINFRAME содержит два цветных изображения с разрешением 32?32 и 16?16 пикселов (рис. 4.7). Вы можете изменить эти пиктограммы по своему усмотрению.

Рис. 4.7. Пиктограммы приложения Dialog

Таблица текстовых строк

В таблице текстовых строк проекта Dialog определена только одна текстовая строка &About Dialog…, имеющая идентификатор IDS_ABOUTBOX. Эта строка содержит текст нового элемента, который будет добавлен к системному меню главной диалоговой панели приложения. Если пользователь выберет эту строку меню, приложение выведет на экран небольшую диалоговую панель, с краткой информацией о приложении.

IDS_ABOUTBOX «&About Dialog…»

Во всех приложениях, созданных с использованием MFC AppWizard, определен специальный ресурс, содержащий различные сведения о версии приложения (4.8). Приложение Dialog также содержит такой ресурс, который имеет идентификатор VS_VERSION_INFO.

Рис. 4.8. Информация о версии приложения

Вы можете внести изменения в этот ресурс, однако имеет смысл делать это только на конечной стадии разработки приложения. Поэтому мы не станем сейчас подробно останавливаться на описании этого ресурса.

Ресурсы в традиционном приложении Windows

Страницы работы

Содержание работы

Ресурсы в традиционном приложении Windows

Каждому разработчику необходимо иметь представление о структуре и принципах функционирования традиционного Windows-приложения, созданного с помощью функций API (Application Programming Interface).

Все Windows-приложения являются программами, управляемыми событиями (event-driven applications). Последовательность обработки сообщений о событиях в системе определяется не программой, а самой системой. Все сообщения попадают в общую очередь. Некоторые из них система передает в очередь сообщений приложения. Приложение выполняет цикл ожидания сообщений. Как только придет сообщение, адресованное приложению, оно будет передано оконной процедуре. Все сообщения Windows имеют стандартные имена, многие из которых начинаются с префикса WM_ (Windows Message). Например, WM_PAINT именует сообщение о том, что необходимо перерисовать содержимое окна того приложения, которое получило это сообщение. Идентификатор сообщения WM_PAINT — это символьная константа, обозначающая некое число.

Эта модель выработки и прохождения сообщений объясняет структуру, принятую для всех Windows-приложений. Простейшее приложение состоит как минимум из двух функций:

¨ Функция WinMain (имя резервировано), которая содержит цикл выборки сообщений и выполняется первой в любом приложении;

¨ Оконная процедура, которую вызывает система, направляя ей соответствующие сообщения.

Имя оконной процедуры выбирается произвольно. Система Windows регистрирует это имя, связывая его с вашим приложением.

Проект Win32 Application

Создайте новый проект типа Win32 Application. Для этого:

1. Выберите команду File | New | Project.

2. Выберите тип проекта: Win32 Application, имя проекта: API, а также удобное для вас местоположение папки с проектом.

3. Согласитесь с выбором An empty project.

4. Выберите команду File | New. В появившемся диалоговом окне выберите страницу File.

5. Выберите тип файла: C++ Source File, имя файла: API. Не забудьте установить флажок: Add to project.

6. Создайте функцию WinMain и оконную процедуру, тексты которых приведены ниже.

Главной целью функцииWinMainявляется регистрация оконного класса, создание окна и запуск цикла ожидания сообщений. Несмотря на обилие кода, она выполняет только эти три действия.

#include // Файл заголовков для Windows приложений

LRESULT APIENTRY WndProc (HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain (HINSTANCE hInst, HINSTANCE, LPSTR, int nCmdShow)

char *sReg = «Строка регистрации»;

MSG msg; // Структура, содержащая описание сообщений

WNDCLASS w; // Структура атрибутов класса окна

w.hInstance = hInst; // Описатель экземпляра приложения


w.lpfnWndProc = WndProc; // Указатель на оконную процедуру

if (!RegisterClass (&w)) // Попытка зарегистрировать оконный класс

return FALSE; // Уход в случае неудач

// Создаем окно и запоминаем его описатель

HWND hWnd = CreateWindow(sReg,»My First Window»,

while (GetMessage(&msg,0,0,0)) // Цикл ожидания сообщений

TranslateMessage(&msg); // Трансляция сообщения (виртуальные коды в символы)

DispatchMessage(&msg); // Пересылка оконной процедуре

LRESULT APIENTRY WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)

static DWORD size = MAX_COMPUTERNAME_LENGTH + 1;

static char *sName = new char [size];

switch(msg) // Переход по сообщению

strcat(strcpy(buf,»Computer Name: «), sName);

TextOut(hdc, 20, 20, buf, strlen(buf));

default: // Процедура по умолчанию

После ввода текста программы запустите приложение (Ctrl+F5). Вы должны увидеть окно с заголовком «My First Window», со значком, данным нам по умолчанию и загруженным из исполняемого кода приложения (файла API.exe), с системным меню, присутствующим по умолчанию. Понятие класс окон появилось до того, как появились классы C++. Поэтому структура WNDCLASS не имеет ничего общего с классами MFC. Она является типом структур языка С. Каждое Windows-приложение должно зарегистрировать свои атрибуты, а регистрация опирается на поля структуры WNDCLASS. Она своими полями определяет некий шаблон или модель поведения для всех окон данного класса. В полях структуры вы указываете эти атрибуты: имя ресурса меню, набор битов для описания стиля окна, где взять изображения курсора и значка, адрес исполняемого модуля приложения, адрес оконной процедуры и т. д.

Эту «неинтересную» работу и выполняет большая часть кодов функции WinMain. Программируя с помощью библиотеки MFC, требуется значительно меньше усилий для создания окна, так как в этом случае используется один из пяти уже зарегистрированных классов окна. Пример проливает свет на то, что делают методы классов MFC, избавляя нас от рутинной работы.

Как добавить ресурсы в сборку?

Здраствуйте , вот наткнулся на такую статью (если её можно так назвать)
http://www.bafoed.net/post/365/

Но там так и не сказали как же мне добавить в этот создаваемый файл файл ресурсов (картинку.)
Ну и как мне указать иконку для этого билда ?

Скажу сразу , гуглил ! но видимо я не умею гуглом пользоваться

Иконка не важна а вот как добавить картинку в ресурсы очень интересно
Так как постоянно таскать её за билдом как минимум не удобно

Читайте также:
  1. E) Работа в цикле
  2. I. Понятие города и его категории
  3. I. ПОНЯТИЕ МАТРИЦЫ.
  4. I.2.1) Понятие права.
  5. II. Работа над текстом и его оформление
  6. II.5.1) Понятие и система магистратур.
  7. II.6.1) Понятие юридических лиц.
  8. III.2.1) Понятие преступления, его основные характеристики.
  9. III.4.2) Понятие и форма вины.
  10. IV. Работа над задачами.
31.08.2015, 03:57

Как программно добавить картинку в ресурсы?
Добрый день. 1) Как программно, добавить картинку в ресурсы и сделать так, что если запускают.

Как добавить string в ресурсы? (консольное приложение)
Нужно чтобы вводимые во время выполнения программы данные сохранялись в программе, а не в текстовом.

CodeDOM. Как поместить файл в ресурсы и как добавить ссылку на сборку из ресурсов?
Здравствуйте, у меня есть функция которая собирает программу из исходного кода на c# public void.

Как добавить ссылку на сборку System.Windows.Forms.DataVisualisation ?
Как добавить ссылку на сборку System.Windows.Forms.DataVisualisation? Стандартным способом.

Добавить dll в ресурсы, потом выгружать в папку с программой
Здравствуйте. Не хочу делать инсталятор программы, т.к. у программы есть всего 1 зависимый dll.

31.08.2015, 08:12 2

DeiTy, начни с получения текста файла ресурсов. Для этого добавь в свой проект resx файл, добавь в него все необходимые ресурсы, для не-строковых ресурсов поставь параметр «Emdedded in .resx». Таким образом в resx файле который является текстовым файлов в формате XML будет все ресурсы с их содержимым. Текст этого файла нужно добавить в ресурсы своего приложения. Назовем его например res.resources.txt.

Далее нам нужен код чтения из ресурсов. Он находится в файле Designer.cs. Возьми его его и скопируй в файл res.txt где находится остальной исходный код. Затем найди в коде место где создается ResourceManager и замени его аргумент на имя выходной сборки. После этого можно написать код в res.txt (внутри кода формы) который работает с ресурсами.

Финальный шаг — компиляция. Добавляем чтение ресурса с именем res.resources.txt и сохраняем на диск в папку для временных файлов. В экземпляре CompilerParameters заполняем свойство EmbeddedResources. После компиляции можно удалить файл их временной папки т.к. он уже не нужен.

31.08.2015, 09:15 3

добавлять картинку к примеру, чтобы она вместе(внутри) с проектом таскалась.

Ручное добавление ресурса в файл ресурсов проекта:

Илон Маск рекомендует:  Что такое код ovrimos_cursor
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL