Я только что получил блок переключателей KVM, и при подключении к нему моего монитора MacOSX не распознает все возможные разрешения, особенно. не родное разрешение, которое очень раздражает.

Есть ли способ, как я могу это исправить?

Есть ли способ заставить MacOSX указать любое возможное разрешение?

3 ответа3

2

Посмотрите на SwitchResX.

SwitchResX - это инструмент, предназначенный для управления разрешениями всех ваших мониторов. Вот краткое резюме:

В качестве стандартных функций: он предоставляет вам доступ к большинству настроек монитора в настраиваемых меню (в строке меню или с помощью плагина контекстного меню [также на Snow Leopard] на рабочем столе Finder). SwitchResX объединяет функции, относящиеся к разрешению монитора, глубине цвета, зеркальному отображению видео, повороту дисплея, отображению оверскана в одной утилите. Другие полезные функции включают сохранение макета рабочего стола, то есть положения значков на рабочем столе и положения окон всех открытых приложений, и их автоматическое восстановление при изменении разрешения или при подключении или отключении внешнего монитора. Вы можете отключить или деактивировать монитор, не отключая его физически, что позволяет использовать ноутбук в режиме раскладушки с внешним монитором, клавиатурой и мышью. Специальные функции позволяют связывать настройки монитора с системными событиями: нажатие сочетания клавиш, Apple Scripts, Приложение запущено.

Расширенные функции позволяют создавать и включать новые разрешения для монитора, телевизора высокой четкости, плазменного или ЖК-экрана или видеопроектора. Эта расширенная функция очень полезна для пользователей, которым требуется полный контроль над разрешением экрана.

0

Спасибо Гордону за ссылку на форум 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
}
0

Я не уверен, что это все еще работает, но вы могли бы попробовать инструмент командной строки cscreen. Он был заброшен его первоначальным автором, но все еще доступен на форуме macosxhints (пост №6 здесь).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .