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;
#define.FileName('DynamicsAx_Screenshot.png')
;
try
{
// 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);
graphics.CopyFromScreen(x,y,0,0,bitmap.get_Size());
bitmap.Save(SaveToFileName, System.Drawing.Imaging.ImageFormat::get_Png());
}
catch
{
error("The file could not be saved"); // TODO make label
}
}
Code language: PHP (php)
This snippets uses the size of your control and the position on your screen to create the screenshot 🙂