Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Запретит перерисовку часов(Taskbar)? (http://forum.oszone.net/showthread.php?t=168122)

D@n1k007 21-02-2010 20:01 1352772

Запретит перерисовку часов(Taskbar)?
 
Всем доброе время суток!
Подскажите пожалуйста как можно запретит перерисовку часов? Основная цель это "заморозить" время в системе, но только визуально!
Для работы использую Delphi 2010.
Заранее благодарен!!!

pva 21-02-2010 22:51 1352901

тупо повесить сверху окошко со скриншотом - пойдёт?

D@n1k007 21-02-2010 23:01 1352911

Думаю пойдет :) Вот только можно ли потом убрать эту картинку, без заметных мерцаний экрана или таскабара?

D@n1k007 22-02-2010 22:43 1353610

Если кто знает подскажите как проделать то что посоветовал pva. Буду благодарен за любую инфу.

pva 22-02-2010 23:47 1353645

Один раз моргнёт. Делается так: создаётся невидимая форма стиля POPUP (которая без рамки вообще), на ней картинка TBitmap. Из TCanvas экрана в эту картинку копируется правый нижний угол экрана, затем устанавливаются свойства left, top формы, чтобы она оказалась как раз в этом углу. Затем visible:=true. Фокус может не прокатить, если часы не в правом нижнем углу (а в верхнем например, или вообще автоматически убираютсяс экрана). Тогда проще периодически выставлять системный таймер

D@n1k007 23-02-2010 21:47 1354228

2 pva
1. Можно ли с помощью консольного приложения создавать окна?
2. Как сфотографировать часть рабочего стола?

pva 24-02-2010 08:23 1354500

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 сделать окошки, но начинающему это геморно


Время: 15:47.

Время: 15:47.
© OSzone.net 2001-