This patch drastically improves support for multiple displays.
Basically, the GetScreenBounds() function is added to MainForm in the capture region. It is a more robust way of determining the bounds of the entire screen area.
This function is used instead of Screen.GetBounds(Cursor.Position) throughout the code. I've replaced the function in init(bool) in MainForm. FlashlightForm has the bound settings moved from the constructor to the Page_Load function. There was some queerness I ran into when trying to set the bounds in the constructor.
Let me know if you have any questions. I haven't tested it with the CVS source, but I don't think there will be a difference. I'll get CVS and patch that if you have problems with the patch.