Как мне программно пройти через то, что означает, какая клавиша меню загрузки BIOS (например, F11) находится на определенном компьютере.Скажем, у меня есть приложение WinForms, которое техник может запустить, даже в административном режиме, и которое вернет горячую клавишу меню загрузки BIOS.
Одна мысль, которая у меня возникла, заключалась в использовании WMI и перечислении Win32_BIOS
, например приведенный ниже код, но эта информация не возвращает горячую клавишу меню загрузки BIOS, по крайней мере, не напрямую.
Вот фрагмент кода C #.
using System;
using System.Management;
private void Form1_Load(object sender, EventArgs e)
{
EnumBios();
}
private void EnumBios()
{
try
{
string query = "SELECT * FROM Win32_BIOS";
using (ManagementObjectSearcher wmiBiosItems = new ManagementObjectSearcher(query))
{
string textProperties = string.Empty;
foreach (ManagementObject wmiBiosItem in wmiBiosItems.Get())
{
textProperties += $"BIOS Information{Environment.NewLine}";
foreach (PropertyData item in wmiBiosItem.Properties)
{
textProperties += $"\t{item.Name}";
if (null != item.Value)
textProperties += $" = {item.Value.ToString()}";
textProperties += $"{Environment.NewLine}";
}
}
// Display the information.
this.TxtOutput.Text = textProperties;
}
}
catch (Exception ex)
{
this.TxtOutput.Text = ex.Message;
}
}
Здесьэто вывод:
BIOS Information
BiosCharacteristics = System.UInt16[]
BIOSVersion = System.String[]
BuildNumber
Caption = BIOS Date: 02/16/16 09:38:11 Ver: V1.13B0
CodeSet
CurrentLanguage = en|US|iso8859-1
Description = BIOS Date: 02/16/16 09:38:11 Ver: V1.13B0
EmbeddedControllerMajorVersion = 255
EmbeddedControllerMinorVersion = 255
IdentificationCode
InstallableLanguages = 1
InstallDate
LanguageEdition
ListOfLanguages = System.String[]
Manufacturer = American Megatrends Inc.
Name = BIOS Date: 02/16/16 09:38:11 Ver: V1.13B0
OtherTargetOS
PrimaryBIOS = True
ReleaseDate = 20160216000000.000000+000
SerialNumber = To be filled by O.E.M.
SMBIOSBIOSVersion = V1.13
SMBIOSMajorVersion = 2
SMBIOSMinorVersion = 8
SMBIOSPresent = True
SoftwareElementID = BIOS Date: 02/16/16 09:38:11 Ver: V1.13B0
SoftwareElementState = 3
Status = OK
SystemBiosMajorVersion = 4
SystemBiosMinorVersion = 6
TargetOperatingSystem = 0
Version = ALASKA - 1072009
Я не думаю, что WMI будет полезным, хотя может.Как можно программно определить BIOS, либо UEFI, либо устаревший не применяется для отображения меню загрузки, клавиши меню загрузки?