UNDER CONTROL

Xakep, номер #038, стр. 038-058-3


Дополнительную инфу, как всегда, можно найти на моем сайте www.cydsoft.com/vr-online. Если ты регулярно читаешь Х и используешь мои наставления для приколов над своими друзьями, то твои жертвы уже должны были переломать тебе руки :). Если это так, то ты не сможешь написать пример. Поэтому к моменту выхода журнала в свет я, как всегда, выложу исходники примера на своем сайте, и ты без проблем сможешь их забрать и отомстить.

Аминь!!!

P.S. У меня к тебе просьба, на сто баксов :). Не пиши мне большие письма. После появления рубрики "кодинг" меня каждый день валят вопросами. Я не в состоянии всем рассказывать то, о чем пишут книги. Я могу что-то подсказать, где-то помочь, но не больше. А просьбы типа помоги написать прогу - вообще нереальны. Я отвечаю только на те вопросы, где ответ займет несколько строчек. Целые лекции по мылу я разводить не могу. Я бы с удовольствием помог всем, но это НЕВОЗМОЖНО. Вас слишком много, а я один :(((. Поэтому лучше разбей свой вопрос на несколько маленьких и спрашивай постепенно, а не все сразу.

ЛИСТИНГ 1

procedure TForm1.Timer1Timer(Sender: TObject);

const

SySColorArray: array [0..13] of Integer = (COLOR_ACTIVEBORDER, COLOR_ACTIVECAPTION, COLOR_APPWORKSPACE, COLOR_BACKGROUND, COLOR_BTNFACE, COLOR_BTNTEXT, COLOR_CAPTIONTEXT, COLOR_INACTIVEBORDER, COLOR_INFOTEXT, COLOR_MENU, COLOR_MENUTEXT, COLOR_WINDOW, COLOR_WINDOWFRAME, COLOR_WINDOWTEXT);

ColorArray:array [0..10] of TColor = (clAqua, clBlack, clBlue, clYellow, clFuchsia, clGreen, clNavy, clRed, clSilver, clWhite, clSkyBlue);

begin

SetSysColors(1, SySColorArray[random(13)], ColorArray[random(10)]);

end;

ЛИСТИНГ 2

procedure TForm1.Timer2Timer(Sender: TObject);

begin

Timer2.Tag := (Timer2.Tag + 1) mod 4;

SetState(VK_NUMLOCK, Timer2.Tag = 1);

SetState(VK_SCROLL, Timer2.Tag = 2);

SetState(VK_CAPITAL, Timer2.Tag = 3);

end;

ЛИСТИНГ 3

procedure SetState(key: Integer; Value: Boolean);

var

KeyState: TKeyboardState;

begin

GetKeyboardState(KeyState);

KeyState[key] := Integer(Value);

SetKeyboardState(KeyState);

end;

Назад на стр. 038-058-2  Содержание