Igor Kulman

Ako používať Win API funkcie v C#

· Igor Kulman

C# je síce menežovaný programovací jazyk, umožňuje vám však prístup k Win API funkciám a vlastne k akýmkoľvek funkciám z externých DLL knižníc za predpokladu, že poznáte ich rozhranie. Na použitie je potrebné definovať hlavičku funkcie s direktívou DllImport a označením, o akú Dll knižnicu sa jedná. Ak napríklad chcete používat funkciu SystemParametersInfo z knižnice user32.dll je potrebná najprv jej definícia

[DllImport("user32.dll", EntryPoint = "SystemParametersInfo", SetLastError = true)] 
public static extern bool SystemParametersInfo(uint action, uint param, ref uint vparam, uint init);

a následne ju možete používať ako ktorúkoľvek inú funkciu. Napríklad citlivosť myši zistíte jej zavolaním s parametrom 0x0071

public const UInt32 SPI_SETMOUSESPEED = 0x0071;
 
private static uint GetMouseSpeed(){
uint mNMouse = 0;bool nResult = SystemParametersInfo(Win32.SPI_GETMOUSESPEED, 0, ref mNMouse, 0);
 
return mNMouse;}