Rysowanie na pulpicie inaczej!?

0

Kiedyś znalazłem na necie kod który pozwala na manipulowanie pulpitem (rysowanie lub coś podobnego). Z tym że chodziło w nim o to aby dajmy na to rysować pod ikonami i przy odświeżaniu okna "wypociny" na pulpicie nie znikają.

Mam tu kawałek takiego kodu który coś wypisuje na pulpicie (na ikonach niestety) i jeśli zostanie to przysłonięte jakimś oknem to się ten tekst oczywiście "zepsuje". :/ Znika gdy się odświeża pulpit! ;-(

function GetDesktopListViewHandle: THandle;
var
  S: String;
begin
  Result := FindWindow('ProgMan', nil);
  Result := GetWindow(Result, GW_CHILD);
  Result := GetWindow(Result, GW_CHILD);
  SetLength(S, 40);
  GetClassName(Result, PChar(S), 39);
  if PChar(S) <> 'SysListView32' then
  Result := 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Canvas.Handle:=GetWindowDC(GetDesktopListViewHandle);
  Canvas.TextOut(100, 100, 'Hello World!');
end;

Pytanie za 100 baksów: czy ktoś zna kod który potrafi pisać/rysować lub robić cokolwiek innego na pulpicie, tak żeby efekty działania tego kodu były trwałe.

Jako przykład podaje funkcje z AllPlayer'a -> "FullScrean na Pulpicie". [!!!]

0

Sam tego kiedys szukalem, udalo mi sie znaleŹĆ tylko przyklad w C. To sie nazywa chyba overlay czy jakos tak.

0
WIktorDelphi napisał(a)

Sam tego kiedys szukalem, udalo mi sie znaleŹĆ tylko przyklad w C. To sie nazywa chyba overlay czy jakos tak.

tak, bylo cos takiego.
poszukajcie w necie, temat jest systematycznie poruszany.

0
fgsfg napisał(a)

tak, bylo cos takiego.
poszukajcie w necie, temat jest systematycznie poruszany.

Jest, ale nie mozna znales do niego odpowiedzi. Przynajmniej w jezyku delphi.

0

Jest do tego biblioteka co prawda w c++
http://www.gamedev.net/community/forums/topic.asp?topic_id=359319
ale generalnie bazuje toto na DirectX i nie powinno byc wiekszych problemow (poza czasem i checiami) aby przeklepac to do delphi. W sieci gdzies jescze (tez w c++) walal sie bardz krotki (a wiec latwo przeklepac do delphi) przyklad - szumiacy ekran pod ikonkami.

0

Dzięki chłopaki za podpowiedzi. Poszukam rozwiązania na necie w C++. Jak znajdę to wrzucę kawałek kodu na forum. Komuś się zawsze przyda.
[browar]

0

Overlay + Delphi + Google God ;-P

Ma ktoś ten kod w Delphi?

0

Opierajac sie na opini:

Szczawik napisał(a)
Gość napisał(a)

Napisz cos o overlay w Delphi!!!

Zapomnij. Tyle osób się o to pyta na forum i nawet raz z litości komuś przez GG napisałem, jak to wykonać. Ale nie będę o tym pisał z czterech powodów:

  1. Overlay wykorzystuje DirectDraw (w wersji DirectX7), który jest obecnie oznaczony jako przestarzały,
  2. W Windows Vista z przestarzałym overlay'em potrafią współpracować tylko aplikacje fullscreenowe,
  3. Jak komuś zależy to na necie znajdzie niejeden program, który pokazuje, jak osiągnąć taki efekt, często z kodem źródłowym (jak tutaj),
  4. Jak ktoś nie potrafi poradzić sobie z kodem w innym języku (vide Delphi vs. C++, bo w takim są na ogół kody prezentujące overlay), to z samym overlay'em też sobie może nie poradzić.

Przecież jest oficjalna dokumentacja, źródła i przykłady. Gotowy efekt łatwo rozpracować.. Łatwo wykonać jak szukasz czegoś konkretnego, a ja nie piszę tego w dziale FAQ tylko jako artykuł, aby kogoś zainspirować.

Swoją drogą w najbliższych dniach znów zacznę pisanie artów (magisterka od wtorku już zalega u promotora).

Dopisane: a tak swoją drogą, wszyscy rzucili się na overlay, zamiast poczytać o VMR9.. zabawne.

Źródło: http://4programmers.net/Forum/431404#id431404

1 użytkowników online, w tym zalogowanych: 0, gości: 1