DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Зміна плану живлення ПК

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра електронні обчислювальні машини

Інформація про роботу

Рік:
2014
Тип роботи:
Лабораторна робота
Предмет:
Системне програмне забезпечення

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет «Львівська політехніка» Кафедра «Електронні обчислювальні машини» / Лабораторна робота № 7 З дисципліни: «Системне програмне забезпечення» Тема: «Зміна плану живлення ПК » Мета : Розробити програму яка зможе змінювати план живлення ПК. Теоретична частина Параметри живлення в Windows базуються на планах живлення. План живлення — це набір настройок устаткування та системи, який керує використанням електроенергії комп’ютером. Плани живлення використовуються для збереження енергії, максимізації продуктивності системи або дотримання балансу між тим і іншим. Три плани живлення за промовчанням — «Баланс», «Економія енергії» та «Висока продуктивність» — відповідають потребам більшості користувачів. Параметри кожного з цих планів можна змінити або, якщо ці плани не задовольняють ваші потреби, можна створити власний план, взявши за основу один із наявних планів. У нижченаведеній таблиці описано кожен із планів за промовчанням. / Керування параметрами живлення Керувати параметрами всіх планів живлення можна за допомогою вікна Параметри живлення із панелі керування. Можна додатково оптимізувати споживання енергії комп’ютером і продуктивність системи, змінивши додаткові параметри живлення. Незважаючи на кількість змін, можна завжди відновити значення параметрів за промовчанням. Завдання: Розробити програму яка зможе змінювати план живлення ПК. Для виконання цього задання була написана сама програма для виводу інформації про стан батареї на мові С# і DLL бібліотека з описом функцій які також будуть використовуватись при виконані наступних лабораторних з курсу СПЗ. Код DLL бібліотеки з описом функцій. #include "brightness.h" #include "gammaramp.h" extern "C" __declspec(dllexport) char * GetPowerStatus() { SYSTEM_POWER_STATUS sps; if (GetSystemPowerStatus(&sps)) { switch (sps.ACLineStatus) // печатаем статус питания { case 0: return "Відключено"; case 1: return "Підключено"; case 255: default: return "Невідомо"; break; } } return "Unknown"; } extern "C" __declspec(dllexport) char * GetBatteryFlag() { SYSTEM_POWER_STATUS sps; GetSystemPowerStatus(&sps); switch (sps.BatteryFlag) // статус заряда { case 1: return "Високий"; case 2: return "Низький"; case 4: return "Критичний"; case 8: return "Заряджається"; case 128: return "Батарея відсутня"; case 255: default: return "Невідомий"; } } extern "C" __declspec(dllexport) int GetBatteryPercent() { SYSTEM_POWER_STATUS sps; GetSystemPowerStatus(&sps); return (int)sps.BatteryLifePercent; } extern "C" __declspec(dllexport) int GetBatteryTime() { SYSTEM_POWER_STATUS sps; GetSystemPowerStatus(&sps); return sps.BatteryLifeTime; } extern "C" __declspec(dllexport) int GetFullBatteryTime() { SYSTEM_POWER_STATUS sps; GetSystemPowerStatus(&sps); return sps.BatteryFullLifeTime; } Код програми using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Brightness; using System.Windows.Forms; using System.Runtime.InteropServices; using Microsoft.Win32; using System.Collections; using System.Security; using System.Security.AccessControl; using System.Security.Permissions; using System.Diagnostics; namespace Brightness { public partial class Form1 : Form { public Form1() { InitializeComponent(); } [DllImport("brightness_dll.dll", CharSet=CharSet.Ansi)] public static extern string GetPowerStatus(); [DllImport("brightness_dll.dll", CharSet = CharSet.Ansi)] public static extern string GetBatteryFlag(); [DllImport("brightness_dll.dll", CharSet = CharSet.Ansi)] public static extern int GetBatteryPercent(); [DllImport("brightness_dll.dll", CharSet = CharSet.Ansi)] public static extern int GetBatteryTime(); [DllImport("brightness_dll.dll", CharSet = CharSet.Ansi)] public static extern int GetFullBatteryTime(); [DllImport("brightness_dll.dll", CharSet = CharSet.Ansi)] public static extern void SetBrightness(int Brightness); Hashtable pow = new Hashtable(); string Active; private void GetPowers() { RegistryKey Key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes"); string[] powers = Key.GetSubKeyNames(); Active = (string)Key.GetValue("ActivePowerScheme"); string Shema; foreach (string str in powers) { Key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" + str); Shema = (string)Key.GetValue("FriendlyName"); try { Shema = Shema.Remove(0, Shema.LastIndexOf(",") + 1); } catch { } pow.Add(Shema, str); } } private void Create_radio() { RadioButton[] rb = { radioButton1, radioButton2, radioButton3 }; int i = 0; foreach (DictionaryEntry de in pow) { rb[i].Visible = true; rb[i].Text = (string)de.Key; if (Active == de.Value.ToString()) { rb[i].Checked = true; } i++; } for (int j = 0; j < i - 1; j++) { int h = this.Height + 23; this.Size = new Size(this.Width, h); groupBox3.Height = groupBox3.Height + 23; } } private void Form1_Load(object sender, EventArgs e) { GetPowers(); Create_radio(); } private void radioButton3_CheckedChanged(object sender, EventArgs e) { ChangePow(radioButton3); } private void radioButton2_CheckedChanged(object sender, EventArgs e) { ChangePow(radioButton2); } private void radioButton1_CheckedChanged(object sender, EventArgs e) { ChangePow(radioButton1); } private void ChangePow(RadioButton rb) { Active = (string)pow[rb.Text]; ProcessStartInfo prc = new ProcessStartInfo("Powercfg", "-setactive " + Active); prc.WindowStyle = ProcessWindowStyle.Hidden; Process.Start(prc); } } } Результат виконання Збалансований режим Режим збереження енергії Висновок: Я розробив програму яка змінює план живлення ПК.
Антиботан аватар за замовчуванням

06.12.2014 17:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!