Некоторые программы читают название компании, которое вы ввели при установке Windows и отобразили ее в программе. Как это делается? Они просто читают имя из реестра?Как читать «название компании» из Windows с помощью C#?
ответ
Проверьте API SystemParametersInfo и константой с именем SPI_GETOEMINFO
int details = SystemParametersInfo(SPI_GETOEMINFO, OEMInfo.Capacity, OEMInfo, 0);
if (details != 0)
{
MessageBox.Show(OEMInfo.ToString());
}
Это возвратит CompanyName для OEM. Я не думаю, что вы должны ввести название компании при установке окон, только имя компьютера (я могу ошибаться)
Вы можете увидеть все константы и примеры здесь:
http://pinvoke.net/default.aspx/Enums.SystemMetric
Если вы хотите зарегистрированную компанию имя, введенное в реестре, вы можете получить его от:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization
Использование класса реестра вы можете сделать что-то вдоль этих линий:
string org = (string)Microsoft.Win32.Registry.GetValue(@"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion", "RegisteredOrganization", "");
для Windows хранит зарегистрированное название фирмы в реестре по адресу:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization
Импорт следующее:
using Microsoft.Win32;
Считать значение ключа реестра требуется, например, так:
RegistryKey hklm = Registry.LocalMachine;
hklm = hklm.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion");
Object obp = hklm.GetValue("RegisteredOrganization");`
Console.WriteLine("RegisteredOrganization :{0}",obp);`
Или один вкладыш, как предложено Xiaofu.
Однако правильный способ заключается в использовании двойной обратной косой черты. Это связано с тем, что обратная косая черта является символом escape-функции C#, то есть вы можете вставить символ новой строки, используя \ n или tab, используя \ t, чтобы позволить C# знать, что мы хотим иметь простой обратный слэш, а не некоторый экранированный символ, мы должны использовать два обратных слэша (\) или использовать @ перед строкой, как (@ «\ SomeString»):
string org = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\\Software\\Microsoft\\Windows NT\\CurrentVersion", "RegisteredOrganization", "");
Примечание: ключ RegisteredOrganization не гарантируется содержать значение, так как он может не иметь были заполнены во время установки ОС. Поэтому всегда используйте блок try/catch или проверяйте возвращаемое значение.
Я не мог найти метод или свойство в .NET, который получает вам информацию, но я нашел TechNote, который говорит, какой ключ реестра содержит информацию:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization
Вы можете прочитайте это Используя WMI, он выглядит так, как будто вы после класса Win32_OperatingSystem, а элемент Organization этого класса содержит название компании.
Приведенный ниже код представляет собой консольное приложение с зарегистрированным пользователем и организацией. Чтобы запустить его, вам нужно добавить ссылку на System.Management.dll в проект.Там должна быть только один объект управления, поэтому Еогеасп, вероятно, излишний, не совсем уверен, что лучшая практика, которая была бы:
using System;
using System.Management;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ManagementClass c = new ManagementClass("Win32_OperatingSystem");
foreach (ManagementObject o in c.GetInstances())
{
Console.WriteLine("Registered User: {0}, Organization: {1}", o["RegisteredUser"], o["Organization"]);
}
Console.WriteLine("Finis!");
Console.ReadKey();
}
}
}
мне не нравится иметь текстовый у вызовы реестра в моей бизнес-коде, и Я не поклонник классов утилиты, поэтому я написал метод расширения, который получает название компании из реестра.
using Microsoft.Win32;
namespace Extensions
{
public static class MyExtensions
{
public static string CompanyName(this RegistryKey key)
{
// this string goes in my resources file usually
return (string)key.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion").GetValue("RegisteredOrganization");
}
}
}
Тогда я могу легко получить это значение:
RegistryKey key = Registry.LocalMachine;
return key.CompanyName();
Ничего особенного, просто похорошел способ борьбы с часто извлекаемыми значениями реестра.
- 1. Как получить описание процесса и название компании с помощью дескриптора?
- 2. Как извлечь название компании из этого выражения?
- 3. Regex - название компании
- 4. Как получить название компании с IP-адреса?
- 5. Как выбрать название сертификата компании X.509?
- 6. Regex название компании cleanup simplify
- 7. iOS App Store Название компании Название приложения
- 8. Получить название компании с сайта Google Finance
- 9. GooglePlay и название упаковочной компании
- 10. Как показать название компании и логотип компании в OpenCart
- 11. перебирает название компании SSIS 2008
- 12. Как получить название компании в пространство имен?
- 13. Изменить E-commerce Название компании
- 14. Название компании для Android App
- 15. Как читать 10GB .csv-файл с помощью приложения C# windows
- 16. Получить название компании Форма Content Provider в андроиде с помощью
- 17. Как изменить название компании в ITunes Connect
- 18. Rails показать название компании, а не идентификатор компании
- 19. Название компании отображается вместо «https»
- 20. Название компании Изменить itunes Connect
- 21. Получить название компании, которое открывается в Quickbooks с помощью QBFC
- 22. Как это регулярное выражение извлекает название компании?
- 23. Как читать предложения NMEA в Windows Vista с помощью C++
- 24. Windows phone app, как использовать рассказчик читать название страницы автоматически?
- 25. Как читать реестр Windows с помощью JS?
- 26. Начало основной капитал и информацию о компании дали название компании
- 27. Как читать файл из папки установки приложения с помощью C#?
- 28. как читать определенные значения из текстового файла с помощью C++?
- 29. Как читать файл .c с помощью C++
- 30. Google API получить название компании/организации
System.Environment.CompanyName было бы круто. – 2008-11-07 16:07:36