Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2010, 07:17   #1
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
Вопрос Прямой доступ к пикселям рабочего стола?

Как получить прямой доступ к пикселям рабочего стола, чтобы внезапно можно было изменять пиксели рабочего стола, или даже экрана, помогите пожалуйста.
VintProg вне форума Ответить с цитированием
Старый 02.08.2010, 07:21   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
var DC:HDC;
begin
 DC:=GetDC(0);
//используем контекст
 ReleaseDC(DC,0);//не помню надо ли, но пишу на всяк
end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.08.2010, 07:29   #3
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Код:
 type
 TRGB = record
   b, g, r: byte;
end;

ARGB = array[0..1] of TRGB;
 PARGB = ^ARGB;

var
  Form1: TForm1;
  Table_Canvas : TCanvas;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 p: PARGB;
 x, y: integer;

begin

for y := 0 to Table_Canvas.Brush.Bitmap.Height - 1 do

begin
   p := Table_Canvas.Brush.Bitmap.scanline[y];

   for x := 0 to Table_Canvas.Brush.Bitmap.width - 1 do

   begin
     p[x].r := random(256);
     p[x].g := random(256);
     p[x].b := random(256);
   end;

  Table_Canvas.Pixels[Random(100),10];


end;



end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Table_Canvas := TCanvas.Create;
  Table_Canvas.Handle := GetDc(0);

end;

end.

Не че не выходит!
VintProg вне форума Ответить с цитированием
Старый 02.08.2010, 07:40   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а ты на таймер поставь и не трогай ничего
экран то перерисовывается.
(на вид код верный, разве что у нас формат пикселя точер 24бита?)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.08.2010, 08:14   #5
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Цитата:
а ты на таймер поставь и не трогай ничего
экран то перерисовывается.
Вообще ошибка, не че не перерисовывается!
VintProg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
есть ли компонент,чтобы иметь прямой доступ к пикселям jpeg без конвертирования в bmp? Dima_Dima Свободное общение 1 26.05.2010 19:00
есть ли компонент,чтобы иметь прямой доступ к пикселям jpeg без конвертирования в bmp? Dima_Dima Компоненты Delphi 14 26.05.2010 18:30
Менеджер рабочего стола Kreadlling Общие вопросы C/C++ 0 08.10.2009 19:35
Фон рабочего стола. Rahim1993 Общие вопросы Delphi 11 17.02.2008 21:40
скриншоты рабочего стола Alar Общие вопросы Delphi 0 29.10.2006 10:59