É possível ativar o controle de brilho do software no Dell U2412M

10

Bem, eu só queria essa pergunta sim / não simples para o suporte de e-mail da Dell. Seu site exigia código de serviço apenas para enviar um e-mail. Então eu tentei o suporte de chat "técnico" deles. Algum índio respondeu de forma esquisita e finalmente respondeu que não tinha conhecimento técnico e apenas me deu o link para o suporte por e-mail (que eu já tentei).

Eu tenho um monitor Dell U2412M que tem uma porta DisplayPort e uma porta USB de uplink. Eu habilitei o DDC / CI no OSD. Estou usando o Windows 8 e o controle de brilho na Barra de Charme está desativado.

É possível ativá-lo? Porque ouvi dizer que o DDC / CI permite que seu computador controle sua exibição.

DDC/CI (Command Interface) standard was introduced in August 1998. It specifies a means for a computer to send commands to the monitor, as well as receive sensor data from the monitor, over a bidirectional link. Specific commands to control monitors are defined in a separate Monitor Control Command Set (MCCS) standard version 1.0, released in September 1998. DDC/CI monitors are sometimes supplied with an external color sensor to allow automatic calibration of the monitor's color balance. Some tilting DDC/CI monitors support an auto-pivot function, where a rotation sensor in the monitor enables the operating system to keep the display upright as the monitor is moved between its portrait and landscape positions. Most DDC/CI monitors support only a small subset of MCCS commands and some have undocumented commands. Many manufacturers did not pay attention to DDC/CI in the past, but now almost all monitors support such general MCCS commands as brightness and contrast management.

    
por Damn Vegetables 17.09.2013 / 22:16

4 respostas

4

Veja a página do DDC em Wikipedia :

Ele é vinculado a softwares que fornecem GUI e controle de linha de comando das telas mais modernas.

    
por 19.09.2013 / 04:46
6

Eu tenho um Dell U2515H conectado via HDMI a uma placa nVidia.

Eu tentei softMCCS e funcionou bem. Consegui ajustar o brilho da luz de fundo do software.

Estes são os códigos de controle que este monitores aparentemente suportam:

New control value
Restore factory defaults
Restore luminance/contrast defaults
Restore color defaults
Luminance
Contrast
Select color preset
Red video gain
Green video gain
Blue video gain
Active control
Input source
Screen orientation
Horizontal frequency
Vertical frequency
Panel sub-pixel layout
Display technology type
Application enable key
Display controller type
Display firmware level
Power mode
Display application
VCP version
Manufacturer specific - 0xE0
Manufacturer specific - 0xE1
Manufacturer specific - 0xE2
Manufacturer specific - 0xF0
Manufacturer specific - 0xF1
Manufacturer specific - 0xF2
Manufacturer specific - 0xFD

Eu também avaliei algumas outras ferramentas:

  • Dimmer - Não escurece a luz de fundo. Usa escurecimento falso de software.
  • ScreenBright - Aparentemente usa DDC / CI para controlar a luz de fundo, mas foi removido do site do autor. Eu não tentei baixá-lo de um desses sites espelho desonesto.
  • Redshift - finge como Dimmer.

Edit: Acontece que há uma API fácil de usar para configurar o brilho da tela no Windows. Aqui está um código de exemplo:

Monitor.h

#pragma once

#include <physicalmonitorenumerationapi.h>
#include <highlevelmonitorconfigurationapi.h>

#include <vector>

class Monitor
{
public:
    explicit Monitor(PHYSICAL_MONITOR pm);
    ~Monitor();

    bool brightnessSupported() const;

    int minimumBrightness() const;
    int maximumBrightness() const;
    int currentBrightness() const;

    void setCurrentBrightness(int b);
    // Set brightness from 0.0-1.0
    void setCurrentBrightnessFraction(double fraction);

private:
    bool mBrightnessSupported = false;

    int mMinimumBrightness = 0;
    int mMaximumBrightness = 0;
    int mCurrentBrightness = 0;
    PHYSICAL_MONITOR mPhysicalMonitor;
};

std::vector<Monitor> EnumerateMonitors();

Monitor.cpp

#include "stdafx.h"
#include "Monitor.h"

Monitor::Monitor(PHYSICAL_MONITOR pm) : mPhysicalMonitor(pm)
{
    DWORD dwMonitorCapabilities = 0;
    DWORD dwSupportedColorTemperatures = 0;
    BOOL bSuccess = GetMonitorCapabilities(mPhysicalMonitor.hPhysicalMonitor, &dwMonitorCapabilities, &dwSupportedColorTemperatures);

    if (bSuccess)
    {
        if (dwMonitorCapabilities & MC_CAPS_BRIGHTNESS)
        {
            // Get min and max brightness.
            DWORD dwMinimumBrightness = 0;
            DWORD dwMaximumBrightness = 0;
            DWORD dwCurrentBrightness = 0;
            bSuccess = GetMonitorBrightness(mPhysicalMonitor.hPhysicalMonitor, &dwMinimumBrightness, &dwCurrentBrightness, &dwMaximumBrightness);
            if (bSuccess)
            {
                mBrightnessSupported = true;
                mMinimumBrightness = dwMinimumBrightness;
                mMaximumBrightness = dwMaximumBrightness;
            }
        }
    }
}

Monitor::~Monitor()
{
}

bool Monitor::brightnessSupported() const
{
    return mBrightnessSupported;
}

int Monitor::minimumBrightness() const
{
    return mMinimumBrightness;
}

int Monitor::maximumBrightness() const
{
    return mMaximumBrightness;
}

int Monitor::currentBrightness() const
{
    if (!mBrightnessSupported)
        return -1;

    DWORD dwMinimumBrightness = 0;
    DWORD dwMaximumBrightness = 100;
    DWORD dwCurrentBrightness = 0;
    BOOL bSuccess = GetMonitorBrightness(mPhysicalMonitor.hPhysicalMonitor, &dwMinimumBrightness, &dwCurrentBrightness, &dwMaximumBrightness);
    if (bSuccess)
    {
        return dwCurrentBrightness;
    }
    return -1;
}

void Monitor::setCurrentBrightness(int b)
{
    if (!mBrightnessSupported)
        return;

    SetMonitorBrightness(mPhysicalMonitor.hPhysicalMonitor, b);
}

void Monitor::setCurrentBrightnessFraction(double fraction)
{
    if (!mBrightnessSupported)
        return;
    if (mMinimumBrightness >= mMaximumBrightness)
        return;
    setCurrentBrightness((mMaximumBrightness - mMinimumBrightness) * fraction + mMinimumBrightness);
}


BOOL CALLBACK MonitorEnumCallback(_In_ HMONITOR hMonitor, _In_ HDC hdcMonitor, _In_ LPRECT lprcMonitor, _In_ LPARAM dwData)
{
    std::vector<Monitor>* monitors = reinterpret_cast<std::vector<Monitor>*>(dwData);

    // Get the number of physical monitors.
    DWORD cPhysicalMonitors;
    BOOL bSuccess = GetNumberOfPhysicalMonitorsFromHMONITOR(hMonitor, &cPhysicalMonitors);

    LPPHYSICAL_MONITOR pPhysicalMonitors = NULL;
    if (bSuccess)
    {
        // Allocate the array of PHYSICAL_MONITOR structures.
        LPPHYSICAL_MONITOR pPhysicalMonitors = new PHYSICAL_MONITOR[cPhysicalMonitors];

        if (pPhysicalMonitors != NULL)
        {
            // Get the array.
            bSuccess = GetPhysicalMonitorsFromHMONITOR(hMonitor, cPhysicalMonitors, pPhysicalMonitors);

            // Use the monitor handles.
            for (unsigned int i = 0; i < cPhysicalMonitors; ++i)
            {
                monitors->push_back(Monitor(pPhysicalMonitors[i]));
            }
        }
    }
    // Return true to continue enumeration.
    return TRUE;
}

std::vector<Monitor> EnumerateMonitors()
{
    std::vector<Monitor> monitors;
    EnumDisplayMonitors(NULL, NULL, MonitorEnumCallback, reinterpret_cast<LPARAM>(&monitors));
    return monitors;
}

Use da maneira óbvia.

    
por 27.06.2015 / 19:41
2

É possível controlar configurações de firmware e configuração de monitores compatíveis com DDC / CI.

A Dell fornece um software de marca personalizada com o nome de Dell Display Manager , projetado pela EnTech Taiwan, para uso com seus monitores. É principalmente um utilitário baseado em GUI, mas oferece um recurso de linha de comando bastante abrangente. A versão atual é compatível com o Windows Vista - Windows 10. Ela pode funcionar com exibições de outros fornecedores, mas isso não foi confirmado.

A versão mais recente do software pode ser baixada diretamente do site oficial .

Dell Display Manager

A informação abaixo é extraída da informação Sobre do programa e parte do arquivo Readme.txt destacando a sintaxe da linha de comando.

Sobre

Dell Display Manager
Version 1.27.0.1792
Copyright (c) 2007-2016, EnTech Taiwan.

Licensed to Dell Inc.

Website: http://www.entechtaiwan.com
E-mail: [email protected]

Linguagem de Comando

A rich and flexible command language is supported via the command-line, and command-line arguments can be combined. Where appropriate, a specific display can be targeted by prefacing the command with the display number, e.g.,2:AutoSetup; if a display number is not specified, the command will be applied to the current selected display or to all displays, as appropriate. Commands include:

SetActiveInput [DVI2/HDMI/DP2,etc] - ativa entrada ativa
RestoreFactoryDefaults - restaura os padrões de fábrica *
AutoSetup - executa autosetup (somente analógico) *
RestoreLevelDefaults - restaura padrões de nível *
RestoreColorDefaults - restaura os padrões de cor *
SetBrightnessLevel X - define o brilho como X% (0-100) *
SetContrastLevel X - define o contraste como X% (0-100) *
SetNamedPreset [Movie/CAL1,etc] - altera o modo Predefinido *
SetPowerMode [on/off] - define o modo de exibição de energia *
SetOptimalResolution - alterna para resolução ideal
SaveProfile [Name] - salva configurações para o perfil nomeado *
RestoreProfile [Name] - restaurar configurações do perfil nomeado *
DeleteProfile [Name] - excluir o perfil nomeado
SetGridType [X] - alterações Fácil Organizar tipo de grade para X
Rescan - redigitaliza o hardware de exibição
ForceReset - reconecta e examina hardware de exibição
SetControl X Y - define o controle hexadecimal X para o valor hexadecimal Y
IncControl X Y - aumenta o valor do controle X por Y
DecControl X Y - diminui o valor do controle X por Y
Wait X - pausa X milissegundos
Exit - encerra o programa

Some of these commands require familiarity with the MCCS standard. For example, on monitors that support it, the command to switch the OSD language to Spanish would be SetControl CC 0A; to unlock an OSD that has been inadvertently locked SetControl CA 02.

Instructions can be combined on the command-line and assigned to standard Windows shortcuts with optional hotkeys. For example:

ddm.exe /RestoreLevelDefaults /2:SetContrastLevel 70

would first restore level defaults on all monitors, and then set the contrast level on monitor #2 to 70%.

Note: If not targeted to a specific monitor, commands listed above that are tagged with an asterisk (*) apply to all monitors to facilitate simple and uniform control over all members of a multi-monitor matrix. For instance, if executed on a matrix of 16 identical monitors, the command-line:

ddm.exe /SetNamedPreset Warm /SetBrightnessLevel 75

would set all 16 monitors to Warm preset mode, with a brightness level of 75%.

    
por 29.05.2016 / 06:39
1

Eu tenho usado o programa "mControl", que funciona bem para mim - meu monitor é o Dell U2312HM:

mControl turns single and multiple monitor arrays into intelligent programmable devices that dynamically change orientation, conserve power, switch color profiles and adjust brightness, eliminating the need to learn and navigate thru obscure menus using archaic buttons on the display itself.

Para baixar este programa, você precisa encontrar a seção "Gráficos e Monitor de Utilitários" na metade inferior da página link , e clique no link "mControl" na parte inferior da seção.

    
por 19.09.2015 / 13:39