Using .net Code saved as full Screen Resolution Image in Dynamics AX 2009
Wrote by Jimmy Feb 11th 2011
static void Jimmy_ImagesSavedFullScreen(Args _args) { System.Drawing.Bitmap bitmap; System.Drawing.Graphics graphics; System.Windows.Forms.Screen primaryScreen; System.Drawing.Rectangle bounds; int x, y, k, l; str SaveToFileName; System.Int32 width; System.Int32 height; filename filename; System.Exception ex; #WINAPI #define.FileName('DynamicsAx_Screenshot.png') ; try { SaveToFileName = strfmt(@"%1\%2",WinApi::getFolderPath(0),#FileName);//0 /* #define.CSIDL_DESKTOP (0x0000) // <desktop> #define.CSIDL_INTERNET (0x0001) // Internet Explorer (icon on desktop) #define.CSIDL_PROGRAMS (0x0002) // Start Menu\Programs #define.CSIDL_CONTROLS (0x0003) // My Computer\Control Panel #define.CSIDL_PRINTERS (0x0004) // My Computer\Printers #define.CSIDL_PERSONAL (0x0005) // My Documents */ if(winapi::fileExists(SaveToFileName,false)) winapi::deleteFile(SaveToFileName); primaryScreen = System.Windows.Forms.Screen::get_PrimaryScreen(); bounds = primaryScreen.get_Bounds(); [x, y, k, l] = WinApi::getWindowRect(infolog.hWnd()); width = WinAPI::getSystemMetrics(#SM_CXSCREEN); height = WinAPI::getSystemMetrics(#SM_CYSCREEN); bitmap = new System.Drawing.Bitmap(width,height); graphics = System.Drawing.Graphics::FromImage(bitmap); graphics.CopyFromScreen(x,y,0,0,bitmap.get_Size()); bitmap.Save(SaveToFileName, System.Drawing.Imaging.ImageFormat::get_Png()); } catch(Exception::CLRError) { ex = CLRInterop::getLastException(); while( ex ) { info( ex.get_Message() ); ex = ex.get_InnerException(); } } catch(Exception::Error) { error("The file could not be saved"); global::exceptionTextFallThrough(); } if(winapi::fileExists(SaveToFileName,false)) winapi::shellExecute(SaveToFileName); }