I have recently been using this algorithm to screenshot my screen, which works amazing:
public Bitmap TakeScreenshot()