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