Delphi - Teljes képernyő vagy egy ablak képének másolása vágólapra

forráskód letöltése
Egy hihetetlenül egyszerű trükk felhasználásával elérjük azt, hogy a képernyő képe vagy az aktuálisan futó alkalmazás képe a vágólapra kerüljön. A vágólapra helyezett kép ezek után tetszés szerint felhasználható.
Ha lenyomjuk a PrintScreen billentyűt, akkor a teljes képernyő képe a vágólapra kerül. Ha lenyomjuk az Alt + PrintScreen billentyű kombinációt, akkor az aktuálisan futó program épp aktív ablakának képe kerül a vágólapra.
Ezek ismeretében a trükk már magától adódik: szimuláljuk ezen billentyűk lenyomását, így az operációs rendszer elvégzi a szükséges funkciókat és kép a vágólapra kerül.
Billentyű lenyomást a Keybd_Event függvény hívásával szimulálhatunk. Ennek első paraméterében kell megadnunk a billentyű kódját, mely a PrintScreen esetében a VK_SNAPSHOT lesz. A második paraméterbe az Alt billentyű lenyomása szimulálható: ha ide 1-et írunk, az Alt „lenyomott” állapotban lesz, nulla esetén pedig nem.
procedure TForm1.Button1Click(Sender: TObject);
begin
  Keybd_Event(VK_SNAPSHOT, 1, 0, 0);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  Keybd_Event(VK_SNAPSHOT, 0, 0, 0);
end;
Ennél a módszernél az Alt + PrintScreen lenyomása mindig a saját programunk ablakát másolja a vágólapra. Ha nem a saját alkalmazásunk ablakát szeretnénk így kimásolni a vágólapra, akkor a Keybd_Event függvény hívása előtt aktivizáljuk programból a másik alkalmazást.