Dynamics ax take screenshots from FormControls

Hi all,

Here is a little code snippet for you to take screen shots within a Dynamics Ax client.

public void run(FormControl _control)
    str                         SaveToFileName;
    System.Drawing.Bitmap           bitmap;
    System.Drawing.Graphics        graphics;
    System.Windows.Forms.Screen primaryScreen;
    System.Drawing.Rectangle       bounds;
    int                                       x, y, k, l;
    System.Int32                         width;
    System.Int32                         height;
        // 5 for the My Documents folder
        SaveToFileName  = strfmt(@"%1%2",WinApi::getFolderPath(5),#FileName);
        primaryScreen   = System.Windows.Forms.Screen::get_PrimaryScreen();
        bounds          = primaryScreen.get_Bounds();
        [x, y, k, l]    = WinApi::getWindowRect(_control.hWnd());
        width           = _control.widthValue();
        height          = _control.heightValue();
        // TwC: used API CLRObject
        // BP Deviation Documented
        bitmap          = new System.Drawing.Bitmap(width,height);
        graphics        = System.Drawing.Graphics::FromImage(bitmap);
        bitmap.Save(SaveToFileName, System.Drawing.Imaging.ImageFormat::get_Png());
        error("The file could not be saved"); // TODO make label

This snippets uses the size of your control and the position on your screen to create the screenshot 🙂

, ,

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.