Progress-4GL中活动窗口的屏幕截图

时间:2015-12-30 10:47:28

标签: progress-4gl openedge

我正在使用In Progress 4GL,在我的应用程序中,我希望对任何KeyStroke事件(例如(CTRL + F9))进行活动窗口的扫描,并将其保存在预先指定的文件夹中。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的,这可以通过从Progress ABL调用.NET来完成。这是一个截取整个屏幕截图的示例。您需要根据自己的需要进行调整。

USING System.Drawing.*.
USING System.Drawing.Imaging.*.
USING System.Windows.Forms.Screen.

DEFINE VARIABLE bmpScreenshot AS Bitmap NO-UNDO.
DEFINE VARIABLE gfxScreenshot AS Graphics NO-UNDO.

bmpScreenshot = NEW Bitmap(Screen:PrimaryScreen:Bounds:Width,
                           Screen:PrimaryScreen:Bounds:Height,
                           PixelFormat:Format32bppArgb).

gfxScreenshot = Graphics:FromImage(bmpScreenshot).

gfxScreenshot:CopyFromScreen(Screen:PrimaryScreen:Bounds:X,
                            Screen:PrimaryScreen:Bounds:Y,
                            0,
                            0,
                            Screen:PrimaryScreen:Bounds:Size,
                            CopyPixelOperation:SourceCopy).

/* Use ImageFormat:[Png|Gif|Bmp|Tiff] etc for different image formats */
bmpScreenshot:SAVE("c:\temp\Screenshot.png", ImageFormat:Png).

这是this question on SO的C#到ABL的翻译。