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);  
   
}

相关文章: