小编neo*_*neo的帖子

如何枚举 OS X 应用程序中的所有钥匙串项目?

请帮助我解决在 OS X 中枚举钥匙串项的问题。我阅读了有关在我的 iOS 应用程序中枚举所有钥匙串项的主题,但想了解如何编写相同的代码,该代码在主题中使用 Core Foundation 函数编写???我尝试这样做:

CFDictionaryRef query = CFDictionaryCreate ( kCFAllocatorDefault, NULL, NULL, 0, NULL, NULL);
CFTypeRef *result = NULL;

status = SecItemCopyMatching(query, result );
if (status != errSecSuccess)
{
    GetLastError(status);
}
Run Code Online (Sandbox Code Playgroud)

但这段代码不起作用!你能帮助我理解我错在哪里吗?函数“SecItemCopyMatching”返回错误:传递给函数的一个或多个参数无效。错误代码:-50。

security macos objective-c keychain core-foundation

2
推荐指数
1
解决办法
2044
查看次数

如何从 MAC 上的所有显示器获取屏幕截图?

我尝试将与我的 MAC 连接的所有显示器的屏幕截图显示为一张图片。我知道,如果每个显示器的屏幕截图都保存到不同的图片,我该怎么做,但这不是我想要的。我找到了函数CGGetDisplaysWithRect,但我的解决方案不起作用,因为输出图片是空的。我预计,函数 CGDisplayCreateImageForRect (*displays, rect) 的问题,因为第一个参数必须是 CGDirectDisplayID 类型,而不是 CGDirectDisplayID*。但是我找不到可以用一些 CGDirectDisplayID 对象创建一张图片的函数。
请帮帮我!!!

#include <stdio.h>
#include <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    CGDisplayCount displayCount;
    CGDirectDisplayID displays[32];
    memset(&displays, 0, 32);
    CGImageRef image[32];
    CGRect rect = CGRectNull;

    //grab the active displays
    if (CGGetActiveDisplayList(32, displays, &displayCount) != kCGErrorSuccess)
    {
        printf("Error occured: %s\n", strerror(errno));
    }

    //go through the list
    for (int i = 0; i < displayCount; i++)
    {
        if (CGDisplayMirrorsDisplay(displays[i]) != kCGNullDirectDisplay)
        {
            continue;
        }
        //return the smallest …
Run Code Online (Sandbox Code Playgroud)

macos screenshot quartz-graphics foundation cgimage

1
推荐指数
1
解决办法
1248
查看次数