![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить изображение рабочего стола ... [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]Удалено модератором