C#: Пример вызова WinAPI функции

Когда я только начинал изучать язык программирования C#, использование WinAPI функций для меня было нечто страшным и невозможным. Однако на практике все оказалось очень просто и доступно. Надеюсь что данный пример поможет многим начинающим C#перам…

Для того что бы использовать ВинАпи нам необходимо подключить следующий namespace:

using System.Runtime.InteropServices;

Далее в описании разрабатываемого класса стоит указать что (какую функцию) и откуда (из какой системной dll) мы будем брать.

Например:

[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool Beep(int frequency, int duration);

Данная конструкция говорит программе что из библиотеки ядра (kernel32.dll) мы хотим использовать функцию Beep, которая возвращает булево значение и принимает в качестве аргументов два параметра типа int.
Стоит отметить что никакой реализации писать не требуется. Так же стоит точно знать какие аргументы принимает та или иная функция. Как вариант, посмотреть это можно тут.
Дальнейшая работа с ВинАпи функцией проводится аналогично как и с обычными функциями, например:

private void Form1_Load(object sender, EventArgs e)
{
    Beep(1000, 5000); //Функция писка системного динамика
    //На сколько известно, не работает в Win7
}
Запись опубликована в рубрике C# с метками , , . Добавьте в закладки постоянную ссылку.