Маленькие хитрости

Источник: pcnext
Darkmaster

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

Начинается наша работа с компонента Tedit, это стандартный комопнент ввода. Как он работает, я, думаю, вы знаете и без меня. А если и не знаете, то разобратся не сложно. Мы же заглянем чуть глубже. Итак, бросьте на форму компонент Tedit. Выделите его левой кнопкой мышки. В обьектном инспекторе обратите внимание на свойство Bevelkind. Поизменяйте его и вы увидите результат. Красиво. Теперь давайте займемся кодингом! Бросьте на форму кнопку. Вновь выделите компонент Edit. Устанвите в свойстве PasswordChar значение *. А теперь давайте создадим обработчик события по нажатию кнопки. Вот код:

procedure TForm1.Button1Click(Sender: TObject);
begin
if Edit1.Text='lena' then
begin
ShowMessage('Пароль введен верно!');
end
else
ShowMessage('Ты не прав...')
end;

Ну... здесь все до безумия просто и понятно. Теперь давайте рассмотрим более интересный пример, благодаря которому, в поле ввода можно будет вносить только цифры. Здесь нам придется поработать с клавиатурой. Выделите компонент ввода (угадайте какой) в обьектном инспекторе, перейдите на вкладку "Events". Здесь найдите действие OnKeyPress.(при нажатии и последующем отпускании клавиши) Вот код для этого события:

i f Key in[a..z] + [A..Z] then Key:=#0;

Здесь мы проверяем оба регистра. (большие и маленькие буквы). Их ввести будет просто невозможно. Теперь давайте разберемся, как сделать нашу программу невидимой. Эти программы нужны в рахных целях. В плохих - трояны, вирусы и прочее, шутки, или системные утилиты. Как вы будете это использовать - дело ваше. Мы сделаем так, чтобы прогу не видно было для панели задач. Делается это очень просто. Создайте обычное приложение, киньте на него одну кнопку. И по ее нажатии впишите этот код:

ShowWindow(Handle,SW_HIDE);
ShowWindow(Application.Handle,SW_HIDE);

Итак, функция ShowWindow выводит нашу форму. Ну, параметр SW_HIDE делает ее невидимой. Единственный минус - прога видна из диспетчера задач! Так что, если будете писать какую-нибудь прогу- шутку, давайте ей имя похожее на какой-нибудь процесс в Windows. Но есть еще одна фишка, можно просто- напросто отключить доступ к диспетчеру задач. Грубо, но весело. Делается это так, по нажатии той же кнопки пишем этот код:

var Reg:TRegistry;
Reg:=TRegIniFile.Create('Software');
Reg.OpenKey('Microsoft',true );
Reg.OpenKey('Windows',true);
Reg.OpenKey('CurrentVersion',true);
Reg.OpenKey('Policies',true);
Reg.OpenKey('System',true);
Reg.WriteInteger('DisableTaskMgr',1);
Reg.CloseKey;
Reg.Free;

Здесь, идет работа с реестром. Не забудьте добавить в uses Registry. Вот так можно сделать очень подлую шутку, для примера дам WinApi функции открытия и закрытия CD-Rom: Открытие:

mciSendString('Set cdaudio door open wait',nil,0,handle);
Закрытие:
mciSendString('Set cdaudio door closed wait',nil,0,handle);


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=2876