Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить изображение рабочего стола ... [D6, WinXP]


Delphi5.01 ©   (2004-08-10 09:43:00) 

Здравствуйте
Как получить изображение рабочего стола. Метод:
 ...
var
 BitMap: TBitMap;
 ...
begin
 ...
 BitMap:=TBitMap.Create;
 BitMap.Canvas.Handle:=GetDC(0);
 BitMap.Free;
 ...
end;
не подходит, так как мне нужно изображение рабочего стола без моей формы!
Вполне возможно кто то сталкивался с похожей проблемой?
Спасибо за помощь


Delphi5.01   (2004-08-10 14:51:00) [1]

Da no kak rabotaut programi u kotorie otdaut ne tolko ten no i kraia ramzmazanie!


VMcL   (2004-08-10 14:22:00) [2]

>> Delphi5.01 ©  (10.08.04 11:51) [7]

Практически эта проблема решается только задержкой после Visible := False;, например, с помощью Sleep().


Correct   (2004-08-10 14:14:00) [3]

Obiasnu vsu mislu, potom legche budet mena ponat. Hochu sozdat formu kotoraia otdaiot ten na rabochem stole, prosto dla prikola, uludshaet vid progi. Dla etogo mne nujen algoritm sglazivania kraiov i teni, chto uje razobrano. Ostaiotsa soskanirovat vso chto nahoditsa bod moei programoi. Esli ia s samogo nachala sdelau printscreen i v budushe ego budu isplzovat to voznikaet problema esli vo vrema raboti programmi otrktout katalog ili programu to zadni fon izmenilsa. A moia programa ob etom i ne znaet! :-( I prodoljaet rabotat s glukkom!


DK   (2004-08-10 12:00:00) [4]

А почему не получается убрать форму на время копирования картинки?


Correct   (2004-08-10 11:54:00) [5]

Vami predlojeni primer vso ravno kopituet ne tolko rabochi stol no i otkritie katalogi a izobrajenie moei programi!


Delphi5.01   (2004-08-10 11:51:00) [6]

Spasibo, nu ni vpram toch v toch sdelali chto ia poprosil. Naverno ia ne sovsem pravilno virazilsa, mne nujno izobrajenie ne tolko rabochego stola no i katalogov i programm (krome moei).
Spasibo


VMcL   (2004-08-10 10:33:00) [7]

>> Delphi5.01 ©  (10.08.04 10:24) [5]

Если только рабочий стол, то может так:

function GetDesktopListViewHandle: HWND;
var
 S: packed array [0 .. 127] of Char;
 Res: Integer;
begin
 Result := FindWindow('ProgMan', nil);
 Result := GetWindow(Result, GW_CHILD);
 Result := GetWindow(Result, GW_CHILD);
 Res := GetClassName(Result, S, SizeOf(S) - 1);
 if (Res = 0) or (String(S) <> 'SysListView32') then
   Result := 0;
end;

// ...

BitMap.Canvas.Handle := GetDC(GetDesktopListViewHandle);


?


Delphi5.01   (2004-08-10 10:24:00) [8]

Visible men nichego ne podskazivaet!
Elsi vi imeete v vidu pogosit moio okoshko i potom sdelat snimok ekrana to vi ne sovem pravi. Vo pervih trudno poimat moment kogda okoshko realno ischezlo, vo vtorih, okoshko budet migat.
P.S. Obratitie vnimanie na Windows Media Player, i programi dannogo tipa!


VMcL   (2004-08-10 10:03:00) [9]

Oops. Sorry. Опять этот ISE aka 500.


VMcL   (2004-08-10 10:00:00) [10]

Visible
?


VMcL   (2004-08-10 10:00:00) [11]

Удалено модератором


VMcL   (2004-08-10 10:00:00) [12]

Удалено модератором


Наверх

Титульная страница Поиск, карта сайта Написать письмо