Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

PrintScreen   Найти похожие ветки 

 
CMOS ©   (2005-12-03 20:36) [0]

Как сфотографировать активное окно/экран, обязательно с учетом палитры?


 
Eraser ©   (2005-12-03 22:37) [1]


> CMOS ©   (03.12.05 20:36)

Alt + Print Screen


 
pohil   (2005-12-04 23:00) [2]

GetDC(0);
Ну а дальше полет фантации.


 
Profi ©   (2005-12-04 23:00) [3]

Eraser ©   (03.12.05 22:37) [1]
Alt-то зачем?


 
CMOS ©   (2005-12-05 20:59) [4]

Eraser, очень смешно.
pohil, эта строка ничего не оставляет в буфере обмена.
Я делаю так:

procedure TForm1.Shoot;
var b: TBitmap;
n: Word;
begin
b:= TBitmap.Create;
n:= 0;
repeat
DXInput1.Update;
 keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 1);
 application.ProcessMessages;
b.LoadFromClipBoardFormat(cf_BitMap, ClipBoard.GetAsHandle(cf_Bitmap),0); {Эту строчку со стандартного примера скопировал}
 b.SaveToFile("c:\"+IntToStr(n)+".bmp");
Inc(n);
until isButton1 in DXInput1.States;
b.Free;
Close;
end;

Просто нажимается PrintScreen. Кто знает другой способ?
Скриншоты делаются, но для 256-цветного режима нужно определить палитру.


 
pohil   (2005-12-06 22:20) [5]

h: HDC;
b: TBitmap;
begin
 ...
 h := GetDC(0);
 b.Canvas.Handle := h;
 b.SaveToFile...


 
Хинт ©   (2005-12-06 22:42) [6]


var
bmp:TBitmap;
DC:HDC;
begin
bmp:=TBitmap.Create;
bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;
DC:=GetDC(0);
bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC, 0, 0, SRCCOPY);
//image.picture.bitmap:=bmp;
ReleaseDC(0, DC);

...
end;


 
Eraser ©   (2005-12-07 00:27) [7]


> Profi ©   (04.12.05 23:00) [3]


> Alt-то зачем?

Чтобы активное окно фоткать. ;-)

> Хинт ©   (06.12.05 22:42) [6]


> bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
>  DC, 0, 0, SRCCOPY);

можно даже так SRCCOPY or CAPTUREBLT, чтобы полупрозрачные окошки фоткались.


 
CMOS ©   (2005-12-19 21:12) [8]

Как теперь плитру учесть, если режим 256 цветов?

Как узнать Handle нужного окна для оконного скриншота?


 
Eraser ©   (2005-12-19 21:17) [9]


> CMOS ©   (19.12.05 21:12) [8]


> Как теперь плитру учесть, если режим 256 цветов?

Зачем? в [6] всё учтено. BitBlt автоматически всё учитывает.

> Как узнать Handle нужного окна для оконного скриншота?

А какое окно нужно?
Подозреваю что поможет GetForegroundWindow.


 
CMOS ©   (2005-12-20 21:03) [10]

Поставил в таймере 20 сек. Далее делаю скриншот.
Запустил StarCraft.
Жалко, нельзя показать вам полученную картинку.
Палитра не сошлась!


 
Eraser ©   (2005-12-20 21:23) [11]


> CMOS ©   (20.12.05 21:03) [10]

Такой эффект наблюдается в StarCraft (не вкуре, но по-моему это ДОСовское приложение) и в других старинных играх.
Добрый совет: забить на StarCraft :-) 99% случаев всё будет нормально работать.


 
CMOS ©   (2005-12-23 21:09) [12]

StarCraft - приложение Windows.

Хорошо, тогда как в Bitmap палитру импортировать из .pal?


 
Fenik ©   (2005-12-23 21:54) [13]

                          PICTURE FILE FORMATS
                        by Bob Montgomery 9-21-90

The Dr. Halo Palette (PAL) file header has the following content (40 bytes):
       struct Hpal
       {    BYTE ID[2];                                 Should be AH
            int  version, size;
            char filetype, subtype;
            WORD brdid, grmode;
            int  maxindex, maxred, maxgreen, maxblue;   Colors = maxindex + 1
            char signature[8], filler[12];              "Dr. Halo", 12 0"s
       } ;
The palette data is integer triples (R, G, B) for each color in the palette.
The palette file data (including the header) is in 512 byte blocks. If there
    is not a full integer triple at the end of a block, the data should be
    ignored and the next block started.



Страницы: 1 вся ветка

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.045 c
14-1135176930
l4m3r
2005-12-21 17:55
2006.01.15
Отличие функции от процедуры


6-1126517088
Victor!
2005-09-12 13:24
2006.01.15
TClientSocket через проксю


2-1135529108
Вопрос
2005-12-25 19:45
2006.01.15
Как получить список файлов в опр дериктории?


14-1135103436
KOSS
2005-12-20 21:30
2006.01.15
Куда делась вкладка Diagram в Delphi for Microsoft Win32 2006?


1-1134039576
Владислав
2005-12-08 13:59
2006.01.15
Реализация лог-файла.