Forum

Пожалуйста or Регистрация для создания сообщений и тем.

Как Вывести 3 значение в одну строку.

Всем привет. Ребят нужна помощь, я не знаю как из 2х или 3х получившихся значений поместить ответ в 1 лейбл.
Мне необходимо взять информацию из реестра к примеру посмотреть какая версия ОС и сколько бит у этой ОС и эти 2 значения мне необходимо записать в 1 лейбл.
Получить значение мне удалось, но я не понимаю как из 3х запросов в реестр вывести все в 1 лейб.

void architecture(string ProductName, string lang, string way_architecture)
        {
            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(way_architecture))
            {
                if (key != null)
                {
                    if (key.GetValue(ProductName) != null)
                    {
                        key.GetValue(ProductName).ToString();
                    }
                }
            }
        }

Т.е. чтобы к примеру получилось так: label.Text = "Ваша Windows 10 Pro 65-битная";

Вот код с обращениями, где мы смотрим.

void architecture()
        {
            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Environment"))
            {
                if (key != null)
                {
                    if (key.GetValue("PROCESSOR_ARCHITECTURE") != null)
                    {
                        key.GetValue("PROCESSOR_ARCHITECTURE").ToString();
                    }
                }
            }
        }

 

Если быть еще точнее, то на примере Tweaker в разделе системная информация Операционная система там выводится разная информация об ОС в 1 строку.

Здравствуйте. Вот это, что-ли?
Работа со строками

Цитата: KiloSub от 26.09.2020, 15:13

Здравствуйте. Вот это, что-ли?
Работа со строками

Здравствуйте, не совсем, или то но я не понимаю как это сделать.
Я подобное видел в видео XpucT
Я в этом все деле новый человек, но быстро учусь)
Я не понимаю как в Вашем примере который Вы дали сделать проверку которую я писал выше к примеру 2 проверки, и Вывести 2 результат в строку.
Т.е. Мы обратимся к реестру сделаем проверки и выводим результат если все есть, а как это все совместить не понимаю.

1 результату я понимаю как вывести т.е. достаточно добавить lable1.Text = key.GetValue("PROCESSOR_ARCHITECTURE").ToString();

Но как мне в lable1.Text = засунуть 2 результата с реестра?

Да я сам новичок. Вот у автора ресурса чуток научился. Так Вы же две строки получаете? Значит нужно две переменных завести снаружи метода, чтобы были видны и им присваивать значения в методе. Правильность я не проверял, в блокноте примерно набросал.

string Name, Bit;

void architecture(string ProductName, string lang, string way_architecture)
{
    ...
        Name = key.GetValue(ProductName).ToString();
    ...
}

void architecture()
{
    ...
        Bit = key.GetValue("PROCESSOR_ARCHITECTURE").ToString();
    ...
}
...
label.Text = $"Ваша Windows {Name} {Bit}";

 

KiloSub всё верно сказал, нужно смотреть видео по работе со строками.

string path = @"SOFTWARE\Microsoft\Windows NT\CurrentVersion";
using (var key = Registry.LocalMachine.OpenSubKey(path))
{
    string Windows = key.GetValue("ProductName").ToString();
    string bit = Environment.Is64BitOperatingSystem ? "x64" : "x86";

    label1.Text = $"Ваша ОС: {Windows} {bit}";

    //или:
    //label1.Text = "Ваша ОС: " + Windows + " " + bit;
}
Цитата: KiloSub от 26.09.2020, 15:52

Да я сам новичок. Вот у автора ресурса чуток научился. Так Вы же две строки получаете? Значит нужно две переменных завести снаружи метода, чтобы были видны и им присваивать значения в методе. Правильность я не проверял, в блокноте примерно набросал.

 
 
 
 
string Name, Bit;
 
void architecture(string ProductName, string lang, string way_architecture)
{
...
Name = key.GetValue(ProductName).ToString();
...
}
 
void architecture()
{
...
Bit = key.GetValue("PROCESSOR_ARCHITECTURE").ToString();
...
}
...
label.Text = $"Ваша Windows {Name} {Bit}";
string Name, Bit; void architecture(string ProductName, string lang, string way_architecture) { ... Name = key.GetValue(ProductName).ToString(); ... } void architecture() { ... Bit = key.GetValue("PROCESSOR_ARCHITECTURE").ToString(); ... } ... label.Text = $"Ваша Windows {Name} {Bit}";
 
string Name, Bit;

void architecture(string ProductName, string lang, string way_architecture)
{
    ...
        Name = key.GetValue(ProductName).ToString();
    ...
}

void architecture()
{
    ...
        Bit = key.GetValue("PROCESSOR_ARCHITECTURE").ToString();
    ...
}
...
label.Text = $"Ваша Windows {Name} {Bit}";

 

Спасибо Вам за помощь!)

Цитата: XpucT от 26.09.2020, 16:03

KiloSub всё верно сказал, нужно смотреть видео по работе со строками.

 
 
 
 
string path = @"SOFTWARE\Microsoft\Windows NT\CurrentVersion";
using (var key = Registry.LocalMachine.OpenSubKey(path))
{
string Windows = key.GetValue("ProductName").ToString();
string bit = Environment.Is64BitOperatingSystem ? "x64" : "x86";
 
label1.Text = $"Ваша ОС: {Windows} {bit}";
 
//или:
//label1.Text = "Ваша ОС: " + Windows + " " + bit;
}
string path = @"SOFTWARE\Microsoft\Windows NT\CurrentVersion"; using (var key = Registry.LocalMachine.OpenSubKey(path)) { string Windows = key.GetValue("ProductName").ToString(); string bit = Environment.Is64BitOperatingSystem ? "x64" : "x86"; label1.Text = $"Ваша ОС: {Windows} {bit}"; //или: //label1.Text = "Ваша ОС: " + Windows + " " + bit; }
 
string path = @"SOFTWARE\Microsoft\Windows NT\CurrentVersion";
using (var key = Registry.LocalMachine.OpenSubKey(path))
{
    string Windows = key.GetValue("ProductName").ToString();
    string bit = Environment.Is64BitOperatingSystem ? "x64" : "x86";

    label1.Text = $"Ваша ОС: {Windows} {bit}";

    //или:
    //label1.Text = "Ваша ОС: " + Windows + " " + bit;
}

И Вам огромное спасибо!)