Чтение онлайн

на главную - закладки

Жанры

Delphi. Учимся на примерах

Парижский Сергей Михайлович

Шрифт:

 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.check;

begin

 if pass.Text = 'password' then //если пароль верный

 begin

//узнаем идентификатор Рабочего стола

h1:= FindWindow('Progman',nil);

//разрешаем работу с
Рабочим столом

ShowWindow(h1, sw_show);

// узнаем идентификатор панели задач

h1:= FindWindow('Shell_traywnd',nil);

//разрешаем работу с панелью задач

ShowWindow(h1, sw_show);

halt; //закрываем программу

 end // иначе, выводим сообщение о неверном пароле

 else ShowMessage('Wrong password!');

end;

procedure TForm1.logon;

begin

 //узнаем идентификатор Рабочего стола

 h1:= FindWindow('Progman', nil);

 ShowWindow(h1, sw_hide); //прячем Рабочий стол

 // находим панель задач

 h1:= FindWindow('Shell_traywnd', nil);

 ShowWindow(h1, sw_hide); //прячем панель задач

 {проверяем, не запущен ли диспетчер задач}

 h1:= FindWindow(nil, 'Диспетчер задачWindows');

 {если да, то закрываем окно диспетчера задач}

 if (h1 <> 0) then PostMessage(h1, WM_QUIT, 1, 0);

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

 logon;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

 check;

end;

procedure TForm1.passKeyPress(Sender: TObject; var Key:Char);

begin

 if key = #13 then // если нажата клавиша <Enter>

check; //вызываем процедуру check

end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

 CanClose:= False;

end;

procedure TForm1.FormCreate(Sender; TObject);

var

 Reg: TRegistry;//переменная для работы с реестром

begin

 Reg:= TRegistry.Create;

 Reg.RootKey:= HKEY_CURRENT_USER; //только
для текущего пользователя

 Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', true); //открываем раздел автозагрузки в реестре

//и записываем название и полный путь к нашей программе

 Reg.WriteString('Logon', Application.ExeName);

 Reg.CloseKey; //закрываем реестр

 Reg.Free; //освобождаем память

end;

procedure TForm1.Timer2Timer(Sender: TObject);

begin

 h1:= FindWindow('Progman', nil); //поиск Рабочего стола

 ShowWindow(h1, sw_hide); //прячем Рабочий стол

 CloseWindow(h1); //сворачиваем окно Рабочего стола

 pass.SetFocus; //переводим курсор в текстовое поле

end;

end.

⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter 10.

Глава 11

Информация о памяти

Постановка задачи

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

Разработка формы

Создайте новый проект Delphi и присвойте свойству Caption формы значение Memory Info.

Для вывода различной информации о памяти мы будем использовать компонент Label категории Standard. Разместите на форме один над другим семь таких компонентов, присвоив свойству Left каждого из них значение 230, а свойству Caption — значение 0.

Слева от этого столбца меток разместите в столбец еще семь компонентов Label, которые будут пояснять числа, отображаемые предыдущими семью метками. Присвойте их свойству Caption следующие значения (сверху вниз): Загруженность памяти:, Всего физической:, Свободно физической:, Всего страничной:. Свободно страничной:, Всего swap: И Свободно swap:.

Еще одним способом отображения загруженности физической памяти будет компонент Gauge категории Samples. Разместите этот компонент вдоль правого края формы и измените значение его свойства Kind на gkVerticalBar, чтобы изменения свойства Gauge.Progress отображались вдоль вертикальной шкалы.

Теперь обеспечим настройку автообновления данных о памяти. Для этого нам понадобится компонент Timer категории System. Пользователь будет задавать период обновления информация о памяти, с помощью компонента SpinEdit категории Samples. В его свойствах следует изменить значение MaxValue на 60, a MinValue — на 1. Это даст возможность пользователю задавать диапазон обновления от 1 до 60 секунд.

Слева от компонента SpinEdit разместите поясняющую метку с текстом Частота обновления:, а справа — метку с текстом секунд.

Поделиться:
Популярные книги

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник

Двойник Короля

Скабер Артемий
1. Двойник Короля
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Двойник Короля

Его нежеланная истинная

Кушкина Милена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Его нежеланная истинная

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Измена. Наследник для дракона

Солт Елена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Измена. Наследник для дракона

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9

Мастер темных Арканов

Карелин Сергей Витальевич
1. Мастер темных арканов
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Мастер темных Арканов

Адвокат империи

Карелин Сергей Витальевич
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.75
рейтинг книги
Адвокат империи

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Вечный. Книга II

Рокотов Алексей
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга II

Законы Рода. Том 3

Flow Ascold
3. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 3

Наследник

Шимохин Дмитрий
1. Старицкий
Приключения:
исторические приключения
5.00
рейтинг книги
Наследник