Написать программу для получения сведений о системе, используя WinAPI функции - C#
Формулировка задачи:
Всем доброго времени суток, в институте такая вот задача далась, помогите её решить пожалуйста:
Написать программу для получения сведений о системе, используя функции
Win32 API: GetSystemInfo (), GetSysColor (), GetSystemMetrics (). Предусмотреть введение
команд с клавиатуры.
Решение задачи: «Написать программу для получения сведений о системе, используя WinAPI функции»
textual
Листинг программы
using System;
using System.Runtime.InteropServices;
namespace n
{
[StructLayout(LayoutKind.Sequential)]
public struct SYSTEM_INFO
{
public ProcessorArchitecture ProcessorArchitecture; // WORD
public uint PageSize; // DWORD
public IntPtr MinimumApplicationAddress; // (long)void*
public IntPtr MaximumApplicationAddress; // (long)void*
public IntPtr ActiveProcessorMask; // DWORD*
public uint NumberOfProcessors; // DWORD (WTF)
public uint ProcessorType; // DWORD
public uint AllocationGranularity; // DWORD
public ushort ProcessorLevel; // WORD
public ushort ProcessorRevision; // WORD
}
public enum ProcessorArchitecture
{
X86 = 0,
X64 = 9,
@Arm = -1,
Itanium = 6,
Unknown = 0xFFFF,
}
public enum SystemMetric
{
SM_CMOUSEBUTTONS = 43,
SM_CMONITORS = 80,
}
class Program
{
[DllImport("kernel32.dll", SetLastError = false)]
public static extern void GetSystemInfo(out SYSTEM_INFO Info);
[DllImport("user32.dll")]
static extern uint GetSysColor(int nIndex);
[DllImport("user32.dll")]
static extern int GetSystemMetrics(SystemMetric smIndex);
static void Main(string[] args)
{
SYSTEM_INFO sys;
GetSystemInfo(out sys);
Console.WriteLine("Architecture:{0}",sys.ProcessorArchitecture);
Console.WriteLine("Number of Processors:{0}",sys.NumberOfProcessors);
Console.WriteLine("ScrollBar color:{0}",GetSysColor(0));
Console.WriteLine("Number of monitors:{0}",GetSystemMetrics(SystemMetric.SM_CMONITORS));
Console.WriteLine("Number of mouse buttons:{0}",GetSystemMetrics(SystemMetric.SM_CMOUSEBUTTONS));
}
}
}