簡體   English   中英

在Cocoa中獲取Mac型號

[英]Getting Mac Model number in Cocoa

我正在制作一個OS X應用程序,我需要獲取Mac模型,例如:

iMac11,3
MacBook3,1

等等。 是否有任何課程或功能得到它?

這些信息可通過。 sysctl

#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/sysctl.h>

size_t len = 0;
sysctlbyname("hw.model", NULL, &len, NULL, 0);
if (len) {
    char *model = malloc(len*sizeof(char));
    sysctlbyname("hw.model", model, &len, NULL, 0);
    printf("%s\n", model);
    free(model);
}

它的API將在IOKit中。 在我的筆記本電腦上查看IORegistryExplorer應用程序,我看到IOService樹根的第一個節點是IOPlatformExpertDevice,在“model”鍵下的條目等於“MacBookPro6,1”

雖然不使用直接Cocoa API,但您可以使用NSTask來執行“system_profiler”命令行工具。 如果您執行以下工具:“system_profiler SPHardwareDataType”,它將為您提供較小的輸出,可以對其進行過濾以提取模型標識符。

更新

我找到了一個以編程方式使用sysctl的示例:

int mib[2];
size_t len = 0;
char *rstring = NULL;

mib[0] = CTL_HW;
mib[1] = HW_MODEL;
sysctl( mib, 2, NULL, &len, NULL, 0 );
rstring = malloc( len );
sysctl( mib, 2, rstring, &len, NULL, 0 );
NSLog(@"%s", rstring );
free( rstring );
rstring = NULL;

來自這里

我不確定是否有通過Cocoa獲取它的確切方法,但你可以使用NSTask並通過shell獲取它。


sysctl hw.model

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM