C++ 如何在MacOSX中使用Cocoa或C++;
如何在Mac OS X中以编程方式拍摄桌面区域的屏幕截图?Qt在examples\desktop\screenshot中包含一个示例屏幕截图应用程序。Qt在一系列平台上工作,包括MacOSXC++ 如何在MacOSX中使用Cocoa或C++;,c++,cocoa,macos,C++,Cocoa,Macos,如何在Mac OS X中以编程方式拍摄桌面区域的屏幕截图?Qt在examples\desktop\screenshot中包含一个示例屏幕截图应用程序。Qt在一系列平台上工作,包括MacOSX 如果你考虑REALbasic,这对于RB和MBS插件非常容易。我刚刚编写了一个应用程序,它使用RB和MBS插件进行定时截图。您可以在这里阅读:我看到过两个有趣的选项,但尚未专业使用,它们是屏幕捕获实用程序和MacFuse演示 根据手册页,截屏工具从10.2开始就存在,可以通过使用NSTask链接到Coco
如果你考虑REALbasic,这对于RB和MBS插件非常容易。我刚刚编写了一个应用程序,它使用RB和MBS插件进行定时截图。您可以在这里阅读:
我看到过两个有趣的选项,但尚未专业使用,它们是屏幕捕获实用程序和MacFuse演示 根据手册页,截屏工具从10.2开始就存在,可以通过使用NSTask链接到Cocoa应用程序 MacFuse演示的工作原理是每次打开文件夹时都创建一个新的屏幕截图,或者类似的东西。其想法是,您可以在需要时编写一个快速脚本来访问图像,而不必让脚本在该机器上实际运行 但是,说真的,苹果还有其他一些名为“抓取之子”的示例代码,它使用了新的CGWindowAPI,非常棒< P>如果你试图用C++或Python来完成,下面的内容可能会有帮助。此外,如果您希望编程方法能够跨平台移植,这将更有帮助。(Windows、Linux、Mac osx甚至更高版本) 早些时候的回复提到了QT 与QT允许您捕获和保存屏幕截图的方式相同,另一个“竞争性”框架,即wxWidgets也可以这样做。WxWIDGET是一个C++框架,但它也通过WXPython提供了Python绑定。 要阅读更多内容,请使用以下链接,在书中搜索wxScreenDC,然后从与搜索匹配的页面列表中选择“第139页”:
实现这一点的一种方法是将NSTask与“screencapture”命令行命令结合使用 例如:
NSTask *theProcess;
theProcess = [[NSTask alloc] init];
[theProcess setLaunchPath:@"/usr/sbin/screencapture"];
// use arguments to set save location
[theProcess setArguments:@"blahblah"];
[theProcess launch];
您可以在任何您要求保存的位置打开文件,对其进行处理,然后根据需要将其删除。显然是权宜之计,但它会起作用。如果您对Leopard兼容性满意,那么有一个非常强大的新CGWindow API,可以让您抓取屏幕截图、窗口截图或任意范围窗口层的组合
谢谢!下面是代码:wxBitmap GetScreenShot(){wxSize screenSize=wxGetDisplaySize();wxBitmap位图(screenSize.x,screenSize.y);wxScreenDC dc dc;wxMemoryDC memDC;memDC.SelectObject(位图);memDC.Blit(0,0,screenSize.x,screenSize.y,&dc,0,0);memDC.SelectObject(wxNullBitmap);返回位图;}