Во-первых, не хак а хук пишешь ДЛЛ-библиотеку и там надо сделать функцию нужную. Программа должна эту ДЛЛ грузить.
Про хуки лучше почитать в инете - инфы навалом.
Во-вторых:
Код:
var DC:HDC;
bm:TBitMap;
...
bm:=TBitMap.Create;
DC:=GetDC(0); // получишь DC экрана
// при сохранении куска раб. стола
...
bm.width:=w;
bm.height:=h; // ширина и высота копируемой области
bitblt(bm.canvas.handle,0,0,w-1,h-1,DC,x,y,SRCCOPY); // копировать в BM кусок из DC WxH
...
//При загрузке
bitblt(DC,x,y,w-1,h-1,bm.canvas.handle,0,0,SRCCOPY) // копировать на экран