2009-11-05 70 views
4

而不是使用一些第三方应用程序,我想用Ruby编写一个应用程序调用时,将捕捉全屏,并将其保存在C:\截图\ snap000001.png如何在Windows上使用Ruby捕获屏幕的一部分?

图形软件包是容易那么,但是如何从全屏捕捉区域以便保存?

这个程序是通过一些热键来调用的,例如按CTRL-PrtScn时按下CTRL-CTRL(左右两个都是控制)或ALT-ALT。

回答

8

我还没有尝试过(我不在窗户上)。但你可以使用Win32::Screenshot

而环顾四周,我发现the following,使用该库

width, height, bitmap = Win32::Screenshot.desktop 
img_lst = ImageList.new 
img_lst.from_blob(bitmap) 
img_lst.write('public/screen.png') 

这确实截图而应该写你的截图为PNG文件。

+1

目前这个gem在''write'在Ruby 1.9下失败,但'.bitmap'很好地输出了bmp-string-source。 – Nakilon 2011-06-22 03:43:42

+0

注意,这段代码片段也需要rmagick宝石,我相信。 – rogerdpack 2011-07-19 20:45:45