Получить список драйверов - C#
Формулировка задачи:
ПОМОГИТЕ ПОЖАЛУЙСТА! Нужно написать программу на С#, которая сможет посмотреть список драйверов, в данный момент загружены в конкретной ПЭВМ. Если точнее "Определить драйвера, резидентные в памяти компьютера на своем рабочем месте."
Решение задачи: «Получить список драйверов»
textual
Листинг программы
using System;
using System.Runtime.InteropServices;
using System.Text;
namespace EnumDeviceDrivers
{
class Program
{
[DllImport("psapi")] private static extern bool EnumDeviceDrivers([MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U4)]
[In][Out] UInt32[] ddAddresses,UInt32 arraySizeBytes, [MarshalAs(UnmanagedType.U4)] out UInt32 bytesNeeded);
[DllImport("psapi")]
private static extern int GetDeviceDriverBaseName(UInt32 ddAddress,StringBuilder ddBaseName, int baseNameStringSizeChars);
static void Main(string[] args)
{
UInt32 arraySize;
UInt32 arraySizeBytes;
UInt32[] ddAddresses;
UInt32 bytesNeeded;
bool success;
success = EnumDeviceDrivers(null, 0, out bytesNeeded);
arraySize = bytesNeeded / 4;
arraySizeBytes = bytesNeeded;
ddAddresses = new UInt32[arraySize];
success = EnumDeviceDrivers(ddAddresses, arraySizeBytes, out bytesNeeded);
for (int i = 0; i < arraySize; i++)
{
StringBuilder sb = new StringBuilder(1000);
int result = GetDeviceDriverBaseName(ddAddresses[i], sb, sb.Capacity);
Console.WriteLine("BaseName: " + sb.ToString());
}
while (true)
if (Console.ReadKey(true).Key == ConsoleKey.Escape)
Environment.Exit(0);
}
}
}