Показать полную графическую версию : Запретит перерисовку часов(Taskbar)?
D@n1k007
21-02-2010, 20:01
Всем доброе время суток!
Подскажите пожалуйста как можно запретит перерисовку часов? Основная цель это "заморозить" время в системе, но только визуально!
Для работы использую Delphi 2010.
Заранее благодарен!!!
тупо повесить сверху окошко со скриншотом - пойдёт?
D@n1k007
21-02-2010, 23:01
Думаю пойдет :) Вот только можно ли потом убрать эту картинку, без заметных мерцаний экрана или таскабара?
D@n1k007
22-02-2010, 22:43
Если кто знает подскажите как проделать то что посоветовал pva. Буду благодарен за любую инфу.
Один раз моргнёт. Делается так: создаётся невидимая форма стиля POPUP (которая без рамки вообще), на ней картинка TBitmap. Из TCanvas экрана в эту картинку копируется правый нижний угол экрана, затем устанавливаются свойства left, top формы, чтобы она оказалась как раз в этом углу. Затем visible:=true. Фокус может не прокатить, если часы не в правом нижнем углу (а в верхнем например, или вообще автоматически убираютсяс экрана). Тогда проще периодически выставлять системный таймер
D@n1k007
23-02-2010, 21:47
2 pva
1. Можно ли с помощью консольного приложения создавать окна?
2. Как сфотографировать часть рабочего стола?
1) для этого необходимо подключить графические библиотеки. Делфи устроена так, что не даёт одновременно подключать VCL, но наверное её можно обмануть, если создать и сохранить проект с формой, затем создать консольный проект и добавить в него все модули из графического. Потом удалить те, которые были из консольного.
2) Для этого используется функция TCanvas.CopyRect
Copies part of an image from another canvas into the canvas.
procedure CopyRect(Dest: TRect; Canvas: TCanvas; Source: TRect);
Description
Use CopyRect to transfer part of the image on another canvas to the image of the TCanvas object. Dest specifies the rectangle on the canvas where the source image will be copied. The Canvas parameter specifies the canvas with the source image. Source specifies a rectangle bounding the portion of the source canvas that will be copied.
The portion of the source canvas is copied using the mode specified by CopyMode.
пользуем изнутри procedure TForm.что_нибудь
var
screen : TCanvas;
dest_rect : TRect;
begin
screen := TCanvas.create;
screen.handle := GetDC(0);
// копируем на форму
canvas.copyRect(Rect(0, 0, 100, 40), screen, Rect(1280-100, 1024-40, 100, 40));
ReleaseDC(0, screen.handle)
end
Ещё можно через WinApi сделать окошки, но начинающему это геморно
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.