2013-11-20 20 views
6

Có cách nào để nhận thông tin về màn hình và màn hình được kết nối và độ phân giải của chúng thông qua thiết bị đầu cuối trong OS X không?Lệnh thiết bị đầu cuối để hiển thị các màn hình/màn hình/độ phân giải được kết nối?

Tôi có một số cài đặt chạy trên nhiều màn hình và đôi khi có cửa sổ GFLW dường như không mở nếu màn hình không được đính kèm - Tôi muốn kiểm tra xem màn hình có được gắn đúng cách hay không một tập tin nhật ký, nhưng tôi đã không tìm thấy một cách chương trình để làm điều đó mà không nhận được sâu vào obj-C/Cocoa

+0

Bạn nên hỏi câu hỏi này trên http: //apple.stackexchange.com – trojanfoe

Trả lời

7

Bạn có thể sử dụng system_profiler SPDisplaysDataType hoặc defaults read /Library/Preferences/com.apple.windowserver.plist:

$ system_profiler SPDisplaysDataType 
Graphics/Displays: 

    NVIDIA GeForce GT 640M: 

     Chipset Model: NVIDIA GeForce GT 640M 
     Type: GPU 
     Bus: PCIe 
     PCIe Lane Width: x16 
     VRAM (Total): 512 MB 
     Vendor: NVIDIA (0x10de) 
     Device ID: 0x0fd8 
     Revision ID: 0x00a2 
     ROM Revision: 3707 
     Displays: 
     iMac: 
      Display Type: LCD 
      Resolution: 1920 x 1080 
      Pixel Depth: 32-Bit Color (ARGB8888) 
      Main Display: Yes 
      Mirror: Off 
      Online: Yes 
      Built-In: Yes 
      Connection Type: DisplayPort 
$ defaults read /Library/Preferences/com.apple.windowserver.plist 
{ 
    DisplayResolutionEnabled = 1; 
    DisplaySets =  (
       (
         { 
       Active = 1; 
       Depth = 4; 
       DisplayID = 69731456; 
       DisplayProductID = 40978; 
       DisplaySerialNumber = 0; 
       DisplayVendorID = 1552; 
       Height = 1080; 
       IODisplayLocation = "IOService:/AppleACPIPlatformExpert/[email protected]/AppleACPIPCI/[email protected]/IOPCI2PCIBridge/[email protected]/NVDA,[email protected]/NVDA"; 
       IOFlags = 7; 
       LimitsHeight = 1080; 
       LimitsOriginX = 0; 
       LimitsOriginY = 0; 
       LimitsWidth = 1920; 
       MirrorID = 0; 
       Mirrored = 0; 
       Mode =     { 
        BitsPerPixel = 32; 
        BitsPerSample = 8; 
        DepthFormat = 4; 
        Height = 1080; 
        IODisplayModeID = "-2147479552"; 
        IOFlags = 7; 
        Mode = 1; 
        PixelEncoding = "--------RRRRRRRRGGGGGGGGBBBBBBBB"; 
        RefreshRate = 0; 
        SamplesPerPixel = 3; 
        UsableForDesktopGUI = 1; 
        Width = 1920; 
        kCGDisplayBytesPerRow = 7680; 
        kCGDisplayHorizontalResolution = 103; 
        kCGDisplayModeIsInterlaced = 0; 
        kCGDisplayModeIsSafeForHardware = 1; 
        kCGDisplayModeIsStretched = 0; 
        kCGDisplayModeIsTelevisionOutput = 0; 
        kCGDisplayModeIsUnavailable = 0; 
        kCGDisplayModeSuitableForUI = 1; 
        kCGDisplayPixelsHigh = 1080; 
        kCGDisplayPixelsWide = 1920; 
        kCGDisplayResolution = 1; 
        kCGDisplayVerticalResolution = 103; 
       }; 
       OriginX = 0; 
       OriginY = 0; 
       PixelEncoding = "--------RRRRRRRRGGGGGGGGBBBBBBBB"; 
       Resolution = 1; 
       Unit = 0; 
       UnmirroredHeight = 1080; 
       UnmirroredLimitsHeight = 1080; 
       UnmirroredLimitsOriginX = 0; 
       UnmirroredLimitsOriginY = 0; 
       UnmirroredLimitsWidth = 1920; 
       UnmirroredMode =     { 
        BitsPerPixel = 32; 
        BitsPerSample = 8; 
        DepthFormat = 4; 
        Height = 1080; 
        IODisplayModeID = "-2147479552"; 
        IOFlags = 7; 
        Mode = 1; 
        PixelEncoding = "--------RRRRRRRRGGGGGGGGBBBBBBBB"; 
        RefreshRate = 0; 
        SamplesPerPixel = 3; 
        UsableForDesktopGUI = 1; 
        Width = 1920; 
        kCGDisplayBytesPerRow = 7680; 
        kCGDisplayHorizontalResolution = 103; 
        kCGDisplayModeIsInterlaced = 0; 
        kCGDisplayModeIsSafeForHardware = 1; 
        kCGDisplayModeIsStretched = 0; 
        kCGDisplayModeIsTelevisionOutput = 0; 
        kCGDisplayModeIsUnavailable = 0; 
        kCGDisplayModeSuitableForUI = 1; 
        kCGDisplayPixelsHigh = 1080; 
        kCGDisplayPixelsWide = 1920; 
        kCGDisplayResolution = 1; 
        kCGDisplayVerticalResolution = 103; 
       }; 
       UnmirroredOriginX = 0; 
       UnmirroredOriginY = 0; 
       UnmirroredResolution = 1; 
       UnmirroredWidth = 1920; 
       Width = 1920; 
      } 
     ) 
    ); 
    ForceOldStyleMemoryManagement = 0; 
} 
+0

Tuyệt vời! Cảm ơn rất nhiều ... chỉ là những gì tôi đang tìm kiếm. Tìm cách làm cho một số ứng dụng của tôi thông minh hơn về màn hình được kết nối. – laserpilot

+0

Bạn có biết lệnh thay đổi độ phân giải và tỷ lệ làm mới được liên kết không? – Vincent

Các vấn đề liên quan