Читаем Delphi. Учимся на примерах полностью

 JokeNum: shortint; //номер шутки, которую следует выполнить

 curs: TRect; //координаты прямоугольника


implementation


procedure SetWallpaper(sWallpaperBMPPath: String; bTile: boolean);

begin

 reg:= TRegistry.Create;

 reg.RootKey:= hkey_current_user;

 if reg.OpenKey('Control Panel\Desktop', True) then

  reg.WriteString('Wallpaper', sWallpaperBMPPath); {ключ содержащий путь к bmp-файлу}

 //растянуть рисунок на весь экран

 reg.WriteString('TileWallpaper', '1');

 with reg do begin

  WriteString('Wallpaper', sWallpaperBMPPath);

  if bTile then begin

   WriteString('TileWallpaper', '1');

  end

  else begin

   WriteString('TileWallpaper', '0');

  end;

 end;

 reg.Free;

 SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Nil, SPIF_SENDWININICHANGE);

end;


function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;

begin

 if code < 0 then

  Result:= CallNextHookEx(oldKbHook, code, wparam, lparam)

 else

  Result:= 1;

end;


{$R *.dfm}


procedure TForm1.Timer1Timer(Sender: TObject);

var

 JokeNum: shortint;

 curs: TRect;

begin

 JokeNum:= Random(10) + 1;

 case JokeNum of

  1: begin //Уменьшить диапазон движения мыши

   curs := Rect(0, 0, Screen.Width div 2,Screen.Height);

   ClipCursor(Scurs);

  end;

  2: begin //Отключить мышь

  SystemParametersInfo(SPI_SETFASTTASKSWITCH, 1, @Dummy,0);

  SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @Dummy, 0);

  OldKbHook:= SetWindowsHookEx(WH_mouse, @KbHook, HInstance, 0);

  end;

  3: begin //отключить клавиатуру

   SystemParametersInfo(SPI_SETFASTTASKSWITCH, 1, @Dummy, 0);

   SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @Dummy, 0);

   OldKbHook:= SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0);

  end;

  4: begin //Очистить буфер обмена

   ClipBoard.Open;//открываем буфер обмена

   ClipBoard.Clear;//очищаем буфер обмена

   //Помещаем в буфер обмена свой текст

   Clipboard.asText:= 'Буфер обмена временно не работает!';

   ClipBoard.Close; //закрываем буфер обмена

  end;

  5: begin // сделать копию экрана и назначить её фоном

   ВМР1:= Graphics.TBitmap.Create;

   //задаем размеры рисунка такие же,как размеры экрана

   BMP1.Height:= Screen.Height;

   BMP1.Width:= Screen.Width;

   DC1:=GetDC(0);

   //Делаем копию экрана

   BitBlt(BMP1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC1, 0, 0, SRCCOPY);

   Form1.Visible:= True;//восстанавливаем окно нашей программы

   Image1:= TImage.Create(nil);

   BMP1.IgnorePalette:= True;

   Image1.Picture.Assign(BMP1);

   BMP1.SaveToFile('с:\1.bmp'); //сохраняем снимок в файл 1.bmp

   SetWallpaper('с:\1.bmp', False); //назначаем снимок, как фон

   Repaint; //обновляем

  end;

  6: begin // Найти случайный рисунок и сделать его фоновым

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже