Screen

0

Patrzecie jest taki patent na ściąganie screen'a ale to nie obejmuje paska startu( tego na dole jakby ktos nie wiedział :D) Tu jest źródło tej porażającej procedurki... nie moja jak co. Co w niej ulepszyć żeby to obejmowało pasek startu??

var
Can: TCanvas;
B : TBitmap;
begin
try
{ tworzenie zmiennej }
Can := TCanvas.Create;
{ przechwycenie uchwytu ekrnau }
Can.Handle := GetWindowDC(GetDesktopWindow);
{ tworzenie bitmapy }
B := TBitmap.Create;
B.Width := Screen.Width;
B.Height := Screen.Height;
B.Canvas.CopyRect(Rect(0, 0, Screen.Width, Screen.Height),
Can,
Rect (0, 0, Screen.Width, Screen.Height));
try // zapisz plik
B.SaveToFile('C:\plik.bmp');
except // w wyniku bledu...
raise Exception.Create(
'Bład w zapisie pliku...');
end;
finally
Can.Free;
B.Free;
end;

PS Jak co to ma zapisywac do pliku tak jak zapisuje...
Prosze o pomoc

0

Nie rozumiem.. u mnie ładnie zapisuje cały ekran włącznie z paskami.

0

Racja to naprawdę działa, ale pojawia się drugi problem.Jak schować pasek startu żeby zamiast niego nie było tam czarnego paska tylko reszta screenu? To nie do żadnego trojana tylko do programu zabezpieczającego kompa... przed niepowołanymi kumplami którzy dość czesto u mnie siedzą... wiecie czasem trzeba na chwile wyjsc a to bedzie idealne :D

0

Zaraz gdy robilem gierke forma miala ustawienia
border style = bsNone i widnows state = wsMaximized Wtedy nie było paska startu :)
ps. zablokuj skróty klawiaturowe np. ALT+CTRL +DEL i ALT+TAB i inne zeby nie mozna bylo przełączac miedzy oknami !!!
Aha robilem program PROTECTION który wlasnie chroni kompa przed nieoczekiwaną osoba hasłem hehe chcesz to moge ci go przesłać tylko daj meila aha ten program ma kolor clbtnface i nie ma na dole czarnego pasku od menu start jesli by cię to interesowało :) tez jest ustawiony na bsnone i wsmaximized i wszystkie zablokowalem tam skróty klawiaturowe działa niezawodnie heh jesli chcesz tego programa to jak juz pisalem daj meila a jesli wolisz sam napisac - jak ja :) potem jest wielka satysfakcja ze sam sie glowiles nad programem i dziala git.

0

Racja to naprawdę działa, ale pojawia się drugi problem.Jak schować pasek startu żeby zamiast niego nie było tam czarnego paska tylko reszta screenu? To nie do żadnego trojana tylko do programu zabezpieczającego kompa... przed niepowołanymi kumplami którzy dość czesto u mnie siedzą... wiecie czasem trzeba na chwile wyjsc a to bedzie idealne :D

Windows SDK i poczytaj. Na forum, FAQ, gotowce. :)

0

Tego typu rzeczy najlpiej robić z pomocą WinAPI - np. ustawić flagę TOPMOST, generalnie jeśli się tworzy okna przez WAPI, ma się nad nimi większą kontrolę. Tak jak szymek pisze - SDK to podstawa. na VCL trudno zrobić coś, co ma być zintegrowane z systemem.

0

Tego typu rzeczy najlpiej robić z pomocą WinAPI - np. ustawić flagę TOPMOST, generalnie jeśli się tworzy okna przez WAPI, ma się nad nimi większą kontrolę. Tak jak szymek pisze - SDK to podstawa. na VCL trudno zrobić coś, co ma być zintegrowane z systemem.

Nie zgodzę się tak do końca. Przecież okna tworzone przez vcl także mają uchwyt, a więc można je potem zmieniać za pomocą winapi, łącznie z ustawieniem flagi TOPMOST.

0

Dzięki Adam ale udało mi się już. Rzeczywiście fajny ubaw jak to działa a jaki kumpel był szczęsliwy że mu brat nie będzie na kompie mieszał :D...

0

Eh... W Win9x/ME jest takie narzędzie PolEdit (ale trzeba z płytki zgrać, bo nie jest instalowane) i świetnie nadaje się do takich zabezpieczeń.
W WinNT/2K/XP jedyne co potrzeba wiedzieć to jak konfigurować profile (no może jak chce się naprawdę zepsuć komuś humor to trzeba jeszcze się pobawić usługami i profilami sprzętowymi)

0

A jak zrobic wycinek screenshota?? i tak zeby sie nie powiekszala bitmapa zeby jej nie rozciagalo.....zeby dal mi wycinek pulpitu w naturalnej wielkosci od punktu np 400x200 i ustalajac dlugosc zalozmy na 200 to mi ladny kwadracik da...
Troche tym Copyrect sie bawilem ale pojawia mi sie biale tlo wokol wycinka jak je usunac?
B.Canvas.CopyRect(Rect(400+200,200+200,400,200),Can,Rect(400+200,200+200,400,200));

0

<font color="green">Troche tym Copyrect sie bawilem ale pojawia mi sie biale tlo wokol wycinka jak je usunac?
B.Canvas.CopyRect(Rect(400+200,200+200,400,200),Can,Rect(400+200,200+200,400,200));
</span>

B.Canvas.CopyRect(Rect(0, 0, 200, 200), Can, Rect(400, 200, 600, 400));
B.Width := 200;
B.Height := 200;

(o ile o to Ci chodziło).

0

tak sorry za taki banal juz na to wpadlem dzis kiedy sie obudzilem, ale i tak dzieki za odpowiedz

0

U mnie tez z wszystkimi paskami

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