Mac OS X Lion上的屏幕截图程序,在其他操作系统上可移植

时间:2011-10-19 16:46:14

标签: c# java .net c++ screen-capture

我需要开发一个在Mac OS X Lion上运行的屏幕捕获程序。我尝试使用monoGTK#制作屏幕截图,但屏幕截图为黑色

Gdk.Window window = Gdk.Global.DefaultRootWindow;
if (window!=null)
{           
    Gdk.Pixbuf pixBuf = new Gdk.Pixbuf(Gdk.Colorspace.Rgb, false, 8, 
                                       window.Screen.Width, window.Screen.Height);          
    pixBuf.GetFromDrawable(window, Gdk.Colormap.System, 0, 0, 0, 0, 
                           window.Screen.Width, window.Screen.Height);          
    pixBuf.ScaleSimple(400, 300, Gdk.InterpType.Bilinear);
    pixBuf.Save("screenshot0.jpeg", "jpeg");
}

你能指出我正确的方向吗?最好使用mono,但如果是javac++objective c也是好的。
提前谢谢。

2 个答案:

答案 0 :(得分:4)

对于Java,请参阅Robot.createScreenCapture(Rectangle)。但请注意,Robot通常也会为应用生成黑屏图像。直接控制屏幕区域(例如许多游戏)。

答案 1 :(得分:0)

您最好的选择可能是使用特定于平台的API来进行实际的图像捕获,而您的应用程序的其余部分仍然可移植。对于OS X,Apple实际上提供了sample code如何执行此操作,并且您的代码可能在X11下工作。