ما دعوة API أود أن استخدامها لتغيير سطوع من أجهزة الكمبيوتر المحمول (.NET)؟

StackOverflow https://stackoverflow.com/questions/373297

  •  22-08-2019
  •  | 
  •  

سؤال

وأنا لديك Windows Server 2008 مثبتا على جهاز كمبيوتر محمول سوني ولا يعمل سطوع السيطرة. أود أن كتابة برنامج لاسمحوا لي أن تغييره.

وحاليا ما عليك القيام به هو فتح لوحة التحكم في الطاقة، انقر فوق إعدادات متقدمة، ومحاربة من خلال العديد من صناديق UAC أن أحدا يراقبني يجب أن تعتقد أنني مجنون تماما.

وأريد فقط برنامج صغير بسيط للقيام بذلك ولكن لا اعلم ما API للاتصال

هل كانت مفيدة؟

المحلول

ولقد نظرت الى السماء <لأ href = "https://stackoverflow.com/questions/373297/what-api-call-would-i-use-to-change-brightness-of-laptop-net/373308#373308 "> جون رودي الصورة رابط ل WmiSetBrightness في MSDN وخرجت مع هذا:

ManagementClass mclass = new ManagementClass("WmiMonitorBrightnessMethods");
mclass.Scope = new ManagementScope(@"\\.\root\wmi");
ManagementObjectCollection instances = mclass.GetInstances();

// I assume you get one instance per monitor
foreach(ManagementObject instance in instances)
{
    ulong timeout = 1; // in seconds
    ushort brightness = 50; // in percent
    object[] args = new object[] { timeout, brightness };
    instance.InvokeMethod("WmiSetBrightness", args);
}

ملحوظة: ManagementClass، ManagementObjectCollection، وManagementObject عن تنفيذ IDisposable. يجب عليك الاتصال Dispose() أو استخدام "using" لتجنب تسرب الموارد.

نصائح أخرى

وهذا هو فيستا فقط:

http://msdn.microsoft.com/en-us/library /ms775232.aspx

وتحتاج إلى تحديد الشاشة مع GetPhysicalMonitorsFromHMONITOR قبل وضع سطوع مع SetMonitorBrightness. وأظن أحدا لم فعلت ذلك من قبل في صافي لذلك عليك ربما تحتاج لكتابة إمكانية التشغيل المتداخل الخاصة بك. لا يظهر المعهد أن تكون صعبة للغاية لذلك يجب أن تكون قادرة على القيام بذلك بسهولة جدا.

وبقدر ما أنا على علم، لا توجد تمكن (.NET) واجهات برمجة التطبيقات لهذا الغرض. ومع ذلك، لفيستا، وهناك واجهات برمجة التطبيقات غير المدارة المتاحة عبر إمكانية التشغيل المتداخل. انظر MSDN: واجهات برمجة التطبيقات تكوين مراقب و <لأ href = "HTTP: //msdn.microsoft.com/en-us/library/aa394549.aspx "يختلط =" noreferrer نوفولو "> WmiSetBrightness .

ويجوز أن تمكن سبل ضرب طريقة WmiSetBrightness، لكنني لست على علم بها.

إذا كنت لا على ويندوز فيستا أو سيرفر 2008، كنت في لعالم من الأحداث غير السارة: إن برامج التكوين يتعين القيام به مباشرة من خلال برنامج تشغيل الشاشة. واستنادا إلى بالذكر بك UAC أعلاه، وأظن أن هذا ليس هو الحال بالنسبة لك، ولكن الرجل القادم قد تريد أن تعرف. :)

ومجرد brainstormer هنا ... على كمبيوتر محمول يمكنك تغيير سطوع استخدام بعض-kombinations مفتاح على لوحة المفاتيح. يجب أن يكون من الممكن إرسال هذه keyspresses إذا كنت ترغب فقط لجعله أكثر قتامة / أخف وزنا وليس من الضروري أن تعيينها إلى قيمة محددة.

لإضافة إلى DaEagles الجواب، و http://www.pinvoke.net/ يمكن أن يكون الموقع منقذا للحياة عندما يعمل مع Win32 واجهات برمجة التطبيقات في صافي. حالة عدم وجود المعلومات هناك، يرجى إضافته عندما قمت بإجراء إمكانية التشغيل المتداخل ناجحة للصافي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top