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

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

Жанры

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 разместите поясняющую метку с текстом Частота обновления:, а справа — метку с текстом секунд.

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

Вампир. Английская готика. XIX век

Стивенсон Роберт Льюис
Фантастика:
ужасы и мистика
7.67
рейтинг книги
Вампир. Английская готика. XIX век

Волкодав

Семёнова Мария Васильевна
1. Волкодав
Фантастика:
фэнтези
героическая фантастика
9.46
рейтинг книги
Волкодав

Меткий стрелок. Том II

Вязовский Алексей
2. Меткий стрелок
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Меткий стрелок. Том II

Студент из прошлого тысячелетия

Еслер Андрей
2. Соприкосновение миров
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Студент из прошлого тысячелетия

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

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

Я спас СССР! том 2

Вязовский Алексей
2. Я спас СССР
Фантастика:
альтернативная история
5.62
рейтинг книги
Я спас СССР! том 2

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6

Загадка башни

Коган Мстислав Константинович
9. Игра не для слабых
Фантастика:
рпг
фэнтези
попаданцы
5.00
рейтинг книги
Загадка башни

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

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

Назад в СССР 5

Дамиров Рафаэль
5. Курсант
Фантастика:
попаданцы
альтернативная история
6.64
рейтинг книги
Назад в СССР 5

Стеллар. Трибут

Прокофьев Роман Юрьевич
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Стеллар. Трибут

Казачий князь

Трофимов Ерофей
5. Шатун
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Казачий князь

Гримуар тёмного лорда I

Грехов Тимофей
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Гримуар тёмного лорда I

Тень маски

Метельский Николай Александрович
8. Унесенный ветром
Фантастика:
боевая фантастика
8.00
рейтинг книги
Тень маски