Другие языки программирования и технологии

delphi 7 создаём программу-прикол

суть программы : просьба нажать одновременно 10 клавиш на клавиатуре(любых), и выдать сообщение(типо отпустишь-запустится вирус). если отпустит хотябы одну, послать комп в перезагрузку. как организовать контролирующий момент удержания клавиш?
Тебе понадобиться сначала объявить переменные

var
Form1: TForm1;
i: integer; //счетчик клавиш
k: char; //запоминает нажатую клавишу
lovishka: boolean; //попался или нет :)

//при показе формы
procedure TForm1.FormShow(Sender: TObject);
begin
lovushka:= false;
end;

Затем два event'а (у меня при нажатии на клавиши просто при активной форме) :

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if lovushka then
MyExitWindows(EWX_REBOOT or EWX_FORCE);
i:= i-1;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key <> k then
begin
inc(i);
if i = 4 then
begin
ShowMessage('VIRUS!!! XOXOXO!');
lovushka:= true;
end;
k:= Key;
end;
end;

Функция перезагрузки:

function MyExitWindows(RebootParam: Longword): Boolean;
var
TTokenHd: THandle;
TTokenPvg: TTokenPrivileges;
cbtpPrevious: DWORD;
rTTokenPvg: TTokenPrivileges;
pcbtpPreviousRequired: DWORD;
tpResult: Boolean;
const
SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
tpResult := OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
TTokenHd);
if tpResult then
begin
tpResult := LookupPrivilegeValue(nil,
SE_SHUTDOWN_NAME,
TTokenPvg.Privileges[0].Luid);
TTokenPvg.PrivilegeCount := 1;
TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
cbtpPrevious := SizeOf(rTTokenPvg);
pcbtpPreviousRequired := 0;
if tpResult then
Windows.AdjustTokenPrivileges(TTokenHd,
False,
TTokenPvg,
cbtpPrevious,
rTTokenPvg,
pcbtpPreviousRequired);
end;
end;
Result := ExitWindowsEx(RebootParam, 0);
end;

Удачи ;)
Oleg Suslov
Oleg Suslov
2 223
Лучший ответ
Прога прикол весящая 500 кило?
Она должна быть мелкой, а для этого нужен ассемблер или PureBasic.
Я в книжке одной читал такое же, называлась "Нажми бе-бе", вроде бы)
Можно бесконечный цикл с проверкой нажатия каждой клавиши, например)