You should be able to get the size of the desktop window by using the desktop window handle which you can get from Win32::GUI. I'm sure I have done this before (to position a Win32::GUI window in the centre of the screen).
As for the number of monitors... hmm - sounds like you're going to have to do something fancy with Win32::API - good luck :)