MacOSX: เปลี่ยนความละเอียดหน้าจอเป็นความละเอียดที่ไม่อยู่ในรายการ


0

ฉันเพิ่งได้กล่องสวิตช์ KVM และเมื่อเสียบจอแสดงผลของฉันลงในกล่องนั้น MacOSX จะไม่รู้จักวิธีแก้ปัญหาทั้งหมดที่เป็นไปได้ ไม่ใช่ความละเอียดดั้งเดิมซึ่งน่ารำคาญมาก

มีวิธีใดบ้างที่ฉันสามารถแก้ไขได้

มีวิธีใดที่ฉันจะบังคับให้ MacOSX แจ้งให้ฉันระบุความละเอียดที่เป็นไปได้หรือไม่?

คำตอบ:


0

ฉันไม่แน่ใจว่ายังใช้งานได้หรือไม่ แต่คุณอาจลองใช้เครื่องมือบรรทัดคำสั่ง cscreen มันถูกทอดทิ้งโดยผู้เขียนต้นฉบับ แต่ก็ยังคงมีอยู่จากฟอรัม macosxhints (โพสต์ # 6 ที่นี่ )


2

ลองดูที่SwitchResX

SwitchResX เป็นเครื่องมือที่ออกแบบมาเพื่อจัดการความละเอียดของจอภาพทั้งหมดของคุณ นี่คือบทสรุปโดยย่อ:

เป็นคุณสมบัติมาตรฐาน: ช่วยให้คุณเข้าถึงการตั้งค่าจอภาพส่วนใหญ่ภายในเมนูที่ปรับแต่งได้ (ในแถบเมนูหรือด้วยปลั๊กอินเมนูตามบริบท [ยังอยู่ใน Snow Leopard] บน Finder Desktop) SwitchResX ประกอบด้วยคุณสมบัติที่สัมพันธ์กับความละเอียดของจอภาพ, ความลึกของสี, การทำมิเรอร์วิดีโอ, การหมุนจอแสดงผล, การแสดงผล Overscan ในยูทิลิตี้เดียวเดียว คุณสมบัติที่มีประโยชน์อื่น ๆ ได้แก่ การจัดวางเค้าโครงเดสก์ท็อปเช่นตำแหน่งของไอคอนบนเดสก์ท็อปและตำแหน่งของหน้าต่างของแอปพลิเคชั่นที่เปิดอยู่ทั้งหมดและเรียกคืนโดยอัตโนมัติเมื่อความละเอียดเปลี่ยนไปหรือเมื่อคุณเสียบหรือถอดปลั๊กจอภาพภายนอก คุณสามารถปิดการใช้งานหรือปิดการใช้งานจอภาพโดยไม่ต้องถอดปลั๊กออกช่วยให้คุณสามารถใช้แล็ปท็อปในโหมด clamshell กับจอภาพภายนอก

คุณสมบัติขั้นสูงช่วยให้คุณสร้างและเปิดใช้งานความละเอียดใหม่สำหรับจอภาพ HDTV พลาสม่าหรือจอ LCD หรือ Video Projector คุณสมบัติขั้นสูงนี้มีประสิทธิภาพมากสำหรับผู้ใช้ที่ต้องการควบคุมความละเอียดการแสดงผลอย่างสมบูรณ์


มันไม่ฟรี ฉันจะไม่จ่ายเงินใด ๆ สำหรับฟังก์ชั่นพื้นฐานที่น่ารำคาญ
อัลเบิร์ต

0

ขอบคุณ Gordon สำหรับลิงก์ไปยังฟอรัม Macworld มีรหัสนี้ซึ่งอาจจะสามารถทำสิ่งที่ฉันต้องการ:

/*
* main.c
* newscreen
*
* Created by Jeffrey Osterman on 10/30/07.
* Copyright 2007 Jeffrey Osterman. All rights reserved. 
* PROVIDED AS IS AND WITH NO WARRANTIES WHATSOEVER
*/

#include <ApplicationServices/ApplicationServices.h>

void MyDisplaySwitchToMode (CGDirectDisplayID display, CFDictionaryRef mode);

int main (int argc, const char * argv[]) {

int h; //horizontal resolution
int v; //vertical resolution
CFDictionaryRef switchMode; //mode to swich to
CGDirectDisplayID mainDisplay; //ID of main display


if (argc != 5)
{
printf("Expected 4 inputs, but only received %i\n", argc-1);
return 0;
}

if (!strcmp(argv[1],"-h"))
h=strtol(argv[2], NULL, 0);
else if (!strcmp(argv[1],"-v"))
v=strtol(argv[2], NULL, 0);
else {
printf("Error! Expected first argument to be -h or -v\n");
return 0;
}


if (!strcmp(argv[3],"-h"))
h=strtol(argv[4], NULL, 0);
else if (!strcmp(argv[3],"-v"))
v=strtol(argv[4], NULL, 0);
else {
printf("Error! Expected third argument to be -h or -v");
return 0;
}

mainDisplay = CGMainDisplayID();
switchMode = CGDisplayBestModeForParameters(mainDisplay, 32, h, v, NULL);
MyDisplaySwitchToMode (mainDisplay, switchMode);
return 0;

}



void MyDisplaySwitchToMode (CGDirectDisplayID display, CFDictionaryRef mode)
{
CGDisplayConfigRef config; // 1
CGBeginDisplayConfiguration (&config); // 2
CGConfigureDisplayMode (config, display, mode); // 3

CGCompleteDisplayConfiguration (config, kCGConfigureForSession ); // 5
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.