- •Содержание задания
- •Индивидуальные варианты заданий (обираемая информация о компьютере)
- •Возможный вид главной формы программы-инсталлятора
- •Возможный вид дополнительной формы основной программы
- •Рекомендуемые средства языка программирования c#
- •Рекомендуемые для разработки программы средства языка Object Pascal
Возможный вид главной формы программы-инсталлятора
Кнопка «Установить программу» разблокируется после ввода имени раздела реестра, хранящего электронную подпись под собранной при установке программы информацией, и ввода имени устанавливаемой программы.
Возможный вид дополнительной формы основной программы
Может быть создана с помощью глобальной функции InputBox библиотеки Visual Component Library систем Delphi и C++ Builder.
Рекомендуемые средства языка программирования c#
Класс Environment (параметры операционной среды).
Статические свойства и методы:
string SystemDirectory; // путь к папке System32
string MachineName; // имя компьютера
string UserName; // имя текущего пользователя
string CurrentDirectory; // путь к текущей папке
string GetEnvironmentVariable (string variable); /* получение значения, специфицируемого variable (например, windir для получения пути к папке с ОС Windows) */
string[] GetLogicalDrives (); /* получение массива строк, каждая из которых содержит путь к корневой папке логического диска на компьютере*/
Класс SystemInformation (получение информации об операционной системе).
Статические свойства:
int MouseButtons; // количество кнопок мыши.
Size PrimaryMonitorSize; /* высота (поле Size.Height)и ширина (поле Size.Width)монитора */
Класс DriveInfo (информация о диске, пространство имен System.IO).
Конструктор с параметром string driveName (буква или путь к корневой папке диска) создает объект для указанного диска.
Свойства:
string DriveFormat; // возвращает имя файловой системы диска
string VolumeLabel; // возвращает метку дискового тома
long TotalSize; // возвращает общий размер диска в байтах
string Name; // возвращает имя диска (путь к корневой папке)
Класс Win32_LogicalDisk (информация о диске).
Свойства:
string Name; // имя диска (буква и :)
string VolumeSerialNumber; // серийный номер диска
Класс ManagementObjectSearcher (пространство имен System.Management, требуется добавление к проекту ссылки на System.Management). Конструктор с параметром "Select * from Win32_LogicalDisk" создает запрос к системной базе данных, метод ManagementObjectCollection Get() выполняет указанный в конструкторе запрос и возвращает коллекцию с результатом выполнения. Доступ к свойству элемента коллекции с помощью строки с именем свойства, например mo["VolumeSerialNumber"], где mo – имя элемента коллекции.
Класс Win32_PhysicalMemory (информация об оперативной памяти).
Свойство:
UInt64 Capacity; // объем физической памяти в байтах
Класс ManagementObjectSearcher (пространство имен System.Management, требуется добавление к проекту ссылки на System.Management). Конструктор с параметром "Select * from Win32_PhysicalMemory" создает запрос к системной базе данных, метод ManagementObjectCollection Get() выполняет указанный в конструкторе запрос и возвращает коллекцию с результатом выполнения. Доступ к свойству элемента коллекции с помощью строки с именем свойства, например mo["Capacity"], где mo – имя элемента коллекции.
Внешняя импортируемая функция для получения информации о типе и подтипе клавиатуры:
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.I4)]
public static extern int GetKeyboardType(int nTypeFlag); /* получение типа (nTypeFlag=0) или подтипа (nTypeFlag=1) клавиатуры */
Класс FolderBrowserDialog (отображение стандартного диалога Windows для выбора папки).
Свойства и метод:
string SelectedPath; // возвращает путь к выбранной пользователем папке
bool ShowNewFolderButton; /* управляет добавлением в диалог кнопки Создать папку */
string Description; // задает дополнительный текст в диалоговом окне.
DialogResult ShowDialog(); /* отображает диалог и возвращает DialogResult.OK или DialogResult.Cancel */
Класс.Registry (пространство имен Microsoft.Win32, доступ к системному реестру).
Статическое свойство RegistryKey CurrentUser; /* раздел HKEY_CURRENT_USER */
Класс RegistryKey (доступ к подразделу реестра).
Методы:
RegistryKey CreateSubKey (string subkey); // создание или открытие подраздела
RegistryKey OpenSubKey (string name); // открытие существующего подраздела.
void SetValue (string name, Object value); /* запись значения value параметра name */
Object GetValue (string name); // чтение значения параметра.
void Close (); // закрытие раздела реестра с сохранением изменений
Статический метод класса File (пространство имен System.IO):
void Copy(string sourceFileName, string destFileName, bool overwrite); /* копирование файла sourceFileName в файл destFileName с возможностью перезаписи, задаваемой параметром overwrite */
Классы RSACryptoServiceProvider (реализация асимметричного криптоалгоритма RSA), DSACryptoServiceProvider (реализация асимметричного криптоалгоритма Эль-Гамаля):
Конструктор с параметром-объектом класса CspParameters, имеющего поля
int KeyNumber; /* тип пары ключей, значение KeyNumber. Signature определяет пару ключей для вычисления и проверки ЭЦП */
string KeyContainerName; // имя контейнера ключей
Методы:
byte[] SignData(byte[] buffer, Object halg); /* получение ЭЦП для данных из буфера buffer с использованием функции хеширования halg, которая может задаваться строками “md5” или “sha1” (в классе DSACryptoServiceProvider этот метод имеет только один параметр, т.к. ЭЦП всегда вычисляется с помощью функции хеширования SHA1) */
bool VerifyData(byte[] buffer, Object halg, byte[] signature); /* проверка ЭЦП signature для данных из буфера buffer с использованием функции хеширования halg (в классе DSACryptoServiceProvider этот метод имеет только два параметра, т.к. ЭЦП всегда роверяется с помощью функции хеширования SHA1) */