क्या डेल U2412M पर सॉफ्टवेयर चमक नियंत्रण सक्षम करना संभव है


13

खैर, मैं सिर्फ डेल ई-मेल समर्थन के लिए यह हाँ / कोई सरल सवाल नहीं चाहता था। ई-मेल भेजने के लिए उनकी वेब साइट को सेवा कोड की आवश्यकता है। फिर मैंने उनके "तकनीकी" चैट समर्थन का प्रयास किया। कुछ भारतीय व्यक्ति ने अजीब तरह से जवाब दिया और अंत में जवाब दिया कि उन्हें तकनीकी ज्ञान नहीं है और बस मुझे ई-मेल समर्थन की लिंक दी है (जो मैंने पहले ही कोशिश की थी)।

मेरे पास एक डेल U2412M मॉनिटर है जिसमें एक डिस्प्लेपोर्ट और एक अप-लिंक यूएसबी पोर्ट है। मैंने ओएसडी में डीडीसी / सीआई को सक्षम किया है। मैं विंडोज 8 का उपयोग कर रहा हूं, और चार्म बार पर चमक नियंत्रण अक्षम है।

क्या इसे सक्षम करना संभव है? क्योंकि मैंने सुना है कि डीडीसी / सीआई आपके कंप्यूटर को आपके प्रदर्शन को नियंत्रित करने देता है।

DDC / CI (कमांड इंटरफेस) मानक अगस्त 1998 में पेश किया गया था। यह एक कंप्यूटर के लिए मॉनिटर पर कमांड भेजने के साथ-साथ मॉनिटर से सेंसर डेटा प्राप्त करता है, एक द्विदिश लिंक पर निर्दिष्ट करता है। मॉनिटर को नियंत्रित करने के लिए विशिष्ट आदेश सितंबर 1998 में जारी किए गए एक अलग मॉनिटर कंट्रोल कमांड सेट (MCCS) मानक संस्करण 1.0 में परिभाषित किए गए हैं। डीडीसी / सीआई मॉनिटर को कभी-कभी बाहरी रंग सेंसर के साथ आपूर्ति की जाती है ताकि मॉनिटर के रंग संतुलन को स्वचालित किया जा सके। कुछ झुकाव वाले डीडीसी / सीआई मॉनिटर एक ऑटो-पिवट फ़ंक्शन का समर्थन करते हैं, जहां मॉनिटर में एक रोटेशन सेंसर ऑपरेटिंग सिस्टम को डिस्प्ले के समान सीधा रखने में सक्षम बनाता है क्योंकि मॉनिटर अपने पोर्ट्रेट और लैंडस्केप पदों के बीच ले जाया जाता है। अधिकांश डीडीसी / सीआई मॉनिटर एमसीसीएस कमांड के केवल एक छोटे उपसमूह का समर्थन करते हैं और कुछ के पास अनिर्दिष्ट कमांड होते हैं।चमक और विपरीत प्रबंधन।


Linux के लिए ddcutil.com देखें
cwd

जवाबों:


5

देखें डीडीसी पृष्ठ विकिपीडिया पर :

यह उन सॉफ्टवेयरों से जुड़ता है जो अधिकांश आधुनिक डिस्प्ले का GUI और कमांड लाइन नियंत्रण प्रदान करते हैं।


धन्यवाद। मैंने screenwhite.com/screenbright की कोशिश की , और यह काम कर गया। हालांकि GUI थोड़ा अनाड़ी है ...
लानत सब्जियों

6

मेरे पास एक डेल यू 2515 एच है जो एचडीएमआई के माध्यम से एनवीडिया कार्ड से जुड़ा है।

मैंने softMCCS की कोशिश की और यह ठीक काम किया। मैं सॉफ्टवेयर से बैकलाइट चमक को समायोजित करने में सक्षम था।

ये नियंत्रण कोड हैं जो इस मॉनिटर को स्पष्ट रूप से समर्थन करते हैं:

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

मैंने कुछ अन्य उपकरणों का भी मूल्यांकन किया है:

  • डिम्मर - बैकलाइट मंद नहीं है। नकली सॉफ्टवेयर का उपयोग करता है।
  • स्क्रीनबाइट - स्पष्ट रूप से बैकलाइट को नियंत्रित करने के लिए डीडीसी / सीआई का उपयोग करता है, लेकिन इसे लेखक की वेबसाइट से हटा दिया गया है। मैंने इसे उन डॉगी मिरर साइटों में से एक से डाउनलोड करने की कोशिश नहीं की है।
  • Redshift - इसे Dimmer की तरह बनाता है।

संपादित करें: विंडोज में स्क्रीन की चमक सेट करने के लिए एपीआई का उपयोग करना आसान है। यहाँ कुछ उदाहरण कोड है:

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;
}

स्पष्ट तरीके से उपयोग करें।


प्रदर्शन पर मेरे फिलिप्स BDM4065UC पर काम करता है और SoftMCCS का उपयोग कर वास्तव में खुश है, धन्यवाद !!!!
एवलिन

4

फर्मवेयर सेटिंग्स और मॉनिटर के कॉन्फ़िगरेशन को नियंत्रित करना संभव है जो डीडीसी / सीआई का समर्थन करते हैं।

डेल अपने मॉनिटर के साथ उपयोग के लिए, EnTech ताइवान द्वारा डिज़ाइन किए गए डेल डिस्प्ले मैनेजर के नाम से एक कस्टम-ब्रांडेड सॉफ़्टवेयर प्रदान करता है । यह मुख्य रूप से एक जीयूआई-आधारित उपयोगिता है, लेकिन एक काफी व्यापक कमांड-लाइन क्षमता प्रदान करता है। वर्तमान संस्करण विंडोज विस्टा के साथ संगत है - विंडोज 10. यह अन्य विक्रेताओं के डिस्प्ले के साथ काम कर सकता है, लेकिन इसकी पुष्टि नहीं की गई है।

सॉफ्टवेयर का नवीनतम संस्करण आधिकारिक वेबसाइट से सीधे डाउनलोड किया जा सकता है ।


डेल डिस्प्ले मैनेजर

नीचे दी गई जानकारी प्रोग्राम के बारे में जानकारी और रीडमे.टैक्स फ़ाइल के भाग से कमांड-लाइन सिंटैक्स को उजागर करती है।

के बारे में

डेल डिस्प्ले मैनेजर
संस्करण 1.27.0.1792
कॉपीराइट (c) 2007-2016, EnTech ताइवान।

डेल इंक का लाइसेंस

वेबसाइट: http://www.entechtaiwan.com
ई-मेल: dell.support@entechtaiwan.com

कमांड भाषा

एक समृद्ध और लचीली कमांड भाषा को कमांड-लाइन के माध्यम से समर्थित किया जाता है, और कमांड-लाइन तर्कों को जोड़ा जा सकता है। जहां उपयुक्त हो, एक विशिष्ट डिस्प्ले को कमांड को डिस्प्ले नंबर के साथ पूर्ववर्ती करके लक्षित किया जा सकता है, उदाहरण के लिए 2:AutoSetup; यदि कोई प्रदर्शन संख्या निर्दिष्ट नहीं की जाती है, तो कमांड को वर्तमान चयनित प्रदर्शन या उपयुक्त के रूप में सभी डिस्प्ले पर लागू किया जाएगा। कमांड में शामिल हैं:

SetActiveInput [DVI2/HDMI/DP2,etc]- सक्रिय इनपुट स्विच करता है
RestoreFactoryDefaults- कारखाना डिफॉल्ट्स को पुनर्स्थापित करता है *
AutoSetup- एक ऑटोसिटअप (केवल एनालॉग) को निष्पादित
RestoreLevelDefaultsकरता है - - स्तर स्तर की चूक *
RestoreColorDefaults- रंग डिफॉल्ट को पुनर्स्थापित करता है *
SetBrightnessLevel X- X% (0-100) * पर चमक सेट करता है - X% (0-100) के
SetContrastLevel Xविपरीत सेट ) *
SetNamedPreset [Movie/CAL1,etc]- प्रीसेट मोड को बदलता है *
SetPowerMode [on/off]- डिस्प्ले पॉवर मोड को सेट करता है *
SetOptimalResolution- इष्टतम रिज़ॉल्यूशन पर स्विच करता है
SaveProfile [Name]- सेटिंग्स को नामित प्रोफ़ाइल में सहेजें *
RestoreProfile [Name]- नामित प्रोफ़ाइल से सेटिंग्स को पुनर्स्थापित करें *
DeleteProfile [Name]- नामित प्रोफ़ाइल को हटाएं
SetGridType [X]- आसान आसान ग्रिड प्रकार को एक्स
Rescan- रिज़स्कैन डिस्प्ले हार्डवेयर में बदलें
ForceReset- फिर से संगठित और बचाव हार्डवेयर प्रदर्शित करता है
SetControl X Y- हेक्स नियंत्रण X को हेक्स मान Y पर सेट करता है
IncControl X Y- Y द्वारा नियंत्रण X का मान बढ़ाता है
DecControl X Y- Y द्वारा नियंत्रण X का मान घटाता है
Wait X- X मिलीसेकंड रोकें
Exit- कार्यक्रम को समाप्त करता है

इनमें से कुछ आदेशों को MCCS मानक के साथ परिचित होना आवश्यक है। उदाहरण के लिए, इसका समर्थन करने वाले मॉनिटर पर, ओएसडी भाषा को स्पेनिश में बदलने का आदेश होगा SetControl CC 0A; अनजाने में बंद कर दिया गया है कि एक OSD अनलॉक करने के लिए SetControl CA 02

निर्देश को कमांड-लाइन पर जोड़ा जा सकता है और वैकल्पिक हॉटकी के साथ मानक विंडोज शॉर्टकट को सौंपा जा सकता है। उदाहरण के लिए:

ddm.exe /RestoreLevelDefaults /2:SetContrastLevel 70

सभी मॉनीटरों पर पहले स्तर की चूक को बहाल करेगा, और फिर मॉनिटर # 2 से 70% पर कंट्रास्ट स्तर निर्धारित करेगा।

नोट : यदि किसी विशिष्ट मॉनीटर को लक्षित नहीं किया गया है, तो ऊपर सूचीबद्ध आदेश जो एक तारांकन चिह्न (*) के साथ टैग किए गए हैं, मल्टी मॉनीटर मैट्रिक्स के सभी सदस्यों पर सरल और समान नियंत्रण की सुविधा के लिए सभी मॉनीटर पर लागू होते हैं। उदाहरण के लिए, 16 समान मॉनिटर के मैट्रिक्स पर निष्पादित होने पर, कमांड-लाइन:

ddm.exe /SetNamedPreset Warm /SetBrightnessLevel 75

75% की चमक के स्तर के साथ सभी 16 मॉनिटर को वार्म प्रीसेट मोड पर सेट करना होगा।


इसके विपरीत 25% से कम नहीं कर सकते
Nakilon

1

मैं प्रोग्राम "mControl" का उपयोग कर रहा हूं, जो मेरे लिए अच्छा काम करता है- मेरा मॉनिटर डेल U2312HM है:

mControl एकल और कई मॉनिटर सरणियों को बुद्धिमान प्रोग्रामेबल उपकरणों में बदल देता है जो गतिशील रूप से अभिविन्यास बदलते हैं, शक्ति का संरक्षण करते हैं, रंग प्रोफाइल स्विच करते हैं और चमक को समायोजित करते हैं, प्रदर्शन पर पुरातन बटन का उपयोग करके अस्पष्ट मेनू को जानने और नेविगेट करने की आवश्यकता को समाप्त करते हैं।

इस कार्यक्रम को डाउनलोड करने के लिए आपको पृष्ठ के निचले आधे भाग पर "ग्राफिक्स और मॉनिटर यूटिलिटीज" अनुभाग को ढूंढना होगा । http://www.ddc-ci.com/ , और उस अनुभाग के निचले भाग में "mControl" लिंक पर क्लिक करें।


0

मैं इस ऑटोडोटेक स्क्रिप्ट का उपयोग करता हूं, जो कि उपयुक्त MCCS कमांड भेजने के लिए इस रेडिट पोस्ट से प्रेरित है । Win10 के तहत मेरे डेल U2718Q पर एक आकर्षण की तरह काम करता है:

^!-::
    changeMonitorBrightness(-10)
return

^!=::
    changeMonitorBrightness(10)

getMonitorHandle()
{
  MouseGetPos, xpos, ypos
  point := ( ( xpos ) & 0xFFFFFFFF ) | ( ( ypos ) << 32 )
  ; Initialize Monitor handle
  hMon := DllCall("MonitorFromPoint"
    , "int64", point ; point on monitor
    , "uint", 1) ; flag to return primary monitor on failure

  ; Get Physical Monitor from handle
  VarSetCapacity(Physical_Monitor, 8 + 256, 0)

  DllCall("dxva2\GetPhysicalMonitorsFromHMONITOR"
    , "int", hMon   ; monitor handle
    , "uint", 1   ; monitor array size
    , "int", &Physical_Monitor)   ; point to array with monitor

  return hPhysMon := NumGet(Physical_Monitor)
}

destroyMonitorHandle(handle)
{
  DllCall("dxva2\DestroyPhysicalMonitor", "int", handle)
}


changeMonitorBrightness(delta)
{
  vcpLuminance := 0x10

  handle := getMonitorHandle()

  DllCall("dxva2\GetVCPFeatureAndVCPFeatureReply"
    , "int", handle
    , "char", vcpLuminance
    , "Ptr", 0
    , "uint*", luminance
    , "uint*", maximumValue)

  luminance += delta

  if (luminance > 100) 
  {
  luminance := 100
  }
  else if (luminance < 0)
  {
  luminance := 0
  }

  DllCall("dxva2\SetVCPFeature"
    , "int", handle
    , "char", vcpLuminance
    , "uint", luminance)
  destroyMonitorHandle(handle)
} 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.