checkbox который выводит значение из класса [Решено]
Цитата: Senior от 06.10.2020, 00:35Доброй ночи.
Тест3.Result (Применяет твик) : Тест3.Reverse (Отменяет твик)
Нужен код, на подобии два варианта - то есть если Result уже применялся то в при следующем нажатии на checkbox применится Reverse
void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
Test3.Result(); (Надо что-то по типу Тест3.Result() : Тест3.Reverse)
}
Доброй ночи.
Тест3.Result (Применяет твик) : Тест3.Reverse (Отменяет твик)
Нужен код, на подобии два варианта - то есть если Result уже применялся то в при следующем нажатии на checkbox применится Reverse
void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
Test3.Result(); (Надо что-то по типу Тест3.Result() : Тест3.Reverse)
}
Цитата: Сергей от 06.10.2020, 00:37Доброй 🌙
Так сделайте проверку этого твика, и если он применён, поставьте галочку сразу и вызовите Reverse. Если он не применялся, то галочка пуста и выполняется Result.
Доброй 🌙
Так сделайте проверку этого твика, и если он применён, поставьте галочку сразу и вызовите Reverse. Если он не применялся, то галочка пуста и выполняется Result.
Цитата: Senior от 06.10.2020, 00:57Сколько всего перепробовал, сделать без if - else не получается:( Помогите пожалуйста.
Сколько всего перепробовал, сделать без if - else не получается:( Помогите пожалуйста.
Цитата: Сергей от 06.10.2020, 00:59Ну, так проверка и пишется через if-else как без него-то?
Ну, так проверка и пишется через if-else как без него-то?
Цитата: KiloSub от 06.10.2020, 04:08За правильность оформления не ручаюсь, т.к. мало опыта. Примерно так:
[spoiler]static class Test3 { private static string CurrentKey = @"Software\Policies\Microsoft\Windows\Psched"; public static void Checker(CheckBox checkbox) { using (RegistryKey key = Registry.LocalMachine.OpenSubKey(CurrentKey)) checkbox.Checked = key?.GetValue("NonBestEffortLimit")?.ToString() == "0"; } public static void Result() { using (RegistryKey key = Registry.LocalMachine.CreateSubKey(CurrentKey, true)) key.SetValue("NonBestEffortLimit", 0); } public static void Reverse() { using (RegistryKey key = Registry.LocalMachine.CreateSubKey(CurrentKey, true)) key.DeleteValue("NonBestEffortLimit"); } } private void Form1_Load(object sender, EventArgs e) { // При запуске программы проверка, применен ли уже твик "NonBestEffortLimit"=dword:00000000 Test3.Checker(checkBox1); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) Test3.Result(); else Test3.Reverse(); }[/spoiler]
За правильность оформления не ручаюсь, т.к. мало опыта. Примерно так:
static class Test3
{
private static string CurrentKey = @"Software\Policies\Microsoft\Windows\Psched";
public static void Checker(CheckBox checkbox)
{
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(CurrentKey))
checkbox.Checked = key?.GetValue("NonBestEffortLimit")?.ToString() == "0";
}
public static void Result()
{
using (RegistryKey key = Registry.LocalMachine.CreateSubKey(CurrentKey, true))
key.SetValue("NonBestEffortLimit", 0);
}
public static void Reverse()
{
using (RegistryKey key = Registry.LocalMachine.CreateSubKey(CurrentKey, true))
key.DeleteValue("NonBestEffortLimit");
}
}
private void Form1_Load(object sender, EventArgs e)
{
// При запуске программы проверка, применен ли уже твик "NonBestEffortLimit"=dword:00000000
Test3.Checker(checkBox1);
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
Test3.Result();
else
Test3.Reverse();
}
Цитата: Senior от 06.10.2020, 21:21Добрый вечер, огромное вам спасибо, не болейте. Вопрос у меня странный почему Хачатур и вы присылаете код в формате:
using (RegistryKey key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced")) key?.SetValue("Start_TrackProgs", checkBox1.Checked ? 0 : 1);Это влияет на оптимизацию? Ниже вариант рекомендует visual studio
using RegistryKey key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced"); key?.SetValue("Start_TrackProgs", checkBox1.Checked ? 0 : 1);
Добрый вечер, огромное вам спасибо, не болейте. Вопрос у меня странный почему Хачатур и вы присылаете код в формате:
using (RegistryKey key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced"))
key?.SetValue("Start_TrackProgs", checkBox1.Checked ? 0 : 1);
Это влияет на оптимизацию? Ниже вариант рекомендует visual studio
using RegistryKey key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced");
key?.SetValue("Start_TrackProgs", checkBox1.Checked ? 0 : 1);
Цитата: Сергей от 06.10.2020, 21:25[simple_tooltip content='@hibro']HiBro[/simple_tooltip], оборачивай код, пожалуйста. В форме ответа есть специальная кнопка
Code Insert.
HiBro, оборачивай код, пожалуйста. В форме ответа есть специальная кнопка СкопированоCode Insert.
Цитата: Senior от 06.10.2020, 22:43Извиняюсь. Как можно убрать этот заголовок при нажатии правой кнопкой мыши по форме? Не задевая ControlBox
Извиняюсь. Как можно убрать этот заголовок при нажатии правой кнопкой мыши по форме? Не задевая ControlBox
Цитата: Михаил от 07.10.2020, 21:24Добрый вечер! Если я правильно понял. Нужно удалить контестное меню? То в класс формы вставить следующий код:
(работает в Form Core и Framework)
public partial class Form1:Form { public Form1() { InitializeComponent(); } const int WM_CONTEXTMENU = 0x007B; protected override void WndProc(ref Message m) { if(m.Msg == WM_CONTEXTMENU) m.Result = IntPtr.Zero; else base.WndProc(ref m); } }
Добрый вечер! Если я правильно понял. Нужно удалить контестное меню? То в класс формы вставить следующий код:
(работает в Form Core и Framework)
public partial class Form1:Form {
public Form1() {
InitializeComponent();
}
const int WM_CONTEXTMENU = 0x007B;
protected override void WndProc(ref Message m) {
if(m.Msg == WM_CONTEXTMENU)
m.Result = IntPtr.Zero;
else
base.WndProc(ref m);
}
}
Цитата: Senior от 07.10.2020, 22:57Цитата: Михаил от 07.10.2020, 21:24Добрый вечер! Если я правильно понял. Нужно удалить контестное меню? То в класс формы вставить следующий код:
(работает в Form Core и Framework)
public partial class Form1:Form {public Form1() {InitializeComponent();}const int WM_CONTEXTMENU = 0x007B;protected override void WndProc(ref Message m) {if(m.Msg == WM_CONTEXTMENU)m.Result = IntPtr.Zero;elsebase.WndProc(ref m);}}public partial class Form1:Form { public Form1() { InitializeComponent(); } const int WM_CONTEXTMENU = 0x007B; protected override void WndProc(ref Message m) { if(m.Msg == WM_CONTEXTMENU) m.Result = IntPtr.Zero; else base.WndProc(ref m); } }public partial class Form1:Form { public Form1() { InitializeComponent(); } const int WM_CONTEXTMENU = 0x007B; protected override void WndProc(ref Message m) { if(m.Msg == WM_CONTEXTMENU) m.Result = IntPtr.Zero; else base.WndProc(ref m); } }
Спасибо! Вопросы решены.
Цитата: Михаил от 07.10.2020, 21:24Добрый вечер! Если я правильно понял. Нужно удалить контестное меню? То в класс формы вставить следующий код:
(работает в Form Core и Framework)
public partial class Form1:Form {public Form1() {InitializeComponent();}const int WM_CONTEXTMENU = 0x007B;protected override void WndProc(ref Message m) {if(m.Msg == WM_CONTEXTMENU)m.Result = IntPtr.Zero;elsebase.WndProc(ref m);}}public partial class Form1:Form { public Form1() { InitializeComponent(); } const int WM_CONTEXTMENU = 0x007B; protected override void WndProc(ref Message m) { if(m.Msg == WM_CONTEXTMENU) m.Result = IntPtr.Zero; else base.WndProc(ref m); } }public partial class Form1:Form { public Form1() { InitializeComponent(); } const int WM_CONTEXTMENU = 0x007B; protected override void WndProc(ref Message m) { if(m.Msg == WM_CONTEXTMENU) m.Result = IntPtr.Zero; else base.WndProc(ref m); } }
Спасибо! Вопросы решены.
