Delphi. Учимся на примерах | страница 61
> 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 // Найти случайный рисунок и сделать его фоновым
>
> endval:= Random(10) + 5; //для случайности выбора рисунка
>
> //ищем все файлы с расширением *.bmp в каталоге Windows
>
> Finds:= FindFirst('С:\Windows\*.bmp', faAnyFile, fn);
>
> Finds:= Random(2); //случайное число, 0 или 1
>
> //если выпала 1, то устанавливаем первый попавшийся рисунок
>
> if Finds = 1 then SetWallpaper(fn.Name, False);
>
> if Finds = 0 then begin //иначе…
>
> for i:=1 to endval do begin