GetUserName

Tahle API funkce zjistí jméno aktuálně přihlášeného uživatele. V případě úspěchu vrací funkce hodnotu 1.

Parametry:
lpBuffer

proměnná typu String pevné délky
nSize

počet vrácených znaků

Deklarace:
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

Použití:
Dim test As Long, Jmeno As String * 255
test = GetUserName(Jmeno, 255)
Debug.Print IIf(test, Jmeno, "Nastala chyba")


GetProfileInt

Funkce čte číselnou hodnotu zadaného klíče ze souboru WIN.INI, ten je v systémové složce windows. Není proto
potřeba ho definovat neboť funkce si jej nalezne sama. S návratovou hodnotou je to tady trošku
jinak, pro představu vypíšu tabulku moných situací. Osobně dávám přednost funkci GetProfileString jenž
nedělá rozdíl mezi číslem a znakem. Pozor velká a malá písmena nejsou rozlišována. Takže pokud
soubor obsahuje několik stejných sekcí nebo klíčů, vezme první od počátku souboru!

Vrací Důvod
nDefault
Klíč nebo sekce neexistuje
0
Klíč existuje, ale neobsahuje číselnou hodnotu
hodnotu klíče
Klíč existuje a je vrácena jeho hodnota

Parametry:
lpAppName

Jméno sekce
lpKeyName

Jméno klíče
nDefault

Libovolná "default" hodnota v rozsahu typu Long, pokud možno taková jenž je
nepravděpodobná, že by mohla být platnou návratovou hodnotou. Vyhnete se tak
možným problémům s testováním existence klíců.

Deklarace:
Declare Function GetProfileInt Lib "kernel32" Alias "GetProfileIntA" _
(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Long) As Long

Použití:
Dim test As Long, Hodnota As Long
Hodnota = 3333
test = GetProfileInt("intl", "iCountry", Hodnota)

Select Case test
Case Hodnota
Debug.Print "Klic neexistuje"
Case 0
Debug.Print "Klic existuje, ale neobsahuje cislo."
Case Else
Debug.Print "Klic obsahuje hodnotu : " & test
End Select


GetProfileString

Tato funkce čte "String" hodnotu zadaného klíče ze souboru WIN.INI, ten je v systémové složce windows. Není proto
potřeba ho definovat neboť funkce si jej nalezne sama. Funkce vrací délku řetězce "lpReturnedString".
Pozor velká a malá písmena nejsou rozlišována. Takže pokud
soubor obsahuje několik stejných sekcí nebo klíčů, vezme první od počátku souboru!

Parametry:
lpAppName

Jméno sekce
lpKeyName

Jméno klíče
lpnDefault

Libovolná textová hodnota jenž bude použita v případe výskytu chyby
lpReturnedString

Vrací hodnotu klíče. Pokud nastane chyba vrací obsah "lpnDefault"
nSize

Počet vrácených znaků

Deklarace:

Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" _
(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long) As Long

Použití:
Dim test As Long, Chyba As String, Data As String * 255
Chyba = "Klic_Nenalezen"
test = GetProfileString("intl", "sCountry", Chyba, Data, 255)
Debug.Print IIf(test , Data, "Nastala chyba")


GetProfileSection

Funkce čte všechny klíče zadané sekce ze souboru WIN.INI, ten je v systémové složce windows. Není proto
potřeba ho definovat neboť funkce si jej nalezne sama. pokud sekce neexistuje, nebo nastane chyba vrací funkce 0,
jinak vrací délku řetězce "lpReturnedString",
Pozor velká a malá písmena nejsou rozlišována. Takže pokud
soubor obsahuje několik stejných sekcí nebo klíčů, vezme první od počátku souboru!

Parametry:
lpAppName

Jméno sekce
lpReturnedString

Vrací obsah dané sekce tzn. všechny klíče včetně jejich hodnot přičemž
jednotlivé polozky jsou odděleny mezerou
nSize

Počet vrácených znaků

Deklarace:
Declare Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" _
(ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long

Použití:
Dim test As Long, Data As String * 255
test = GetProfileSection("intl", Data, 255)
Debug.Print IIf(test, Data, "Nastala chyba")


GetPrivateProfileInt, GetPrivateProfileString, GetPrivateProfileSection

Tyto funkce jsou totožné s výše uvedenými s tím rozdílem že břibyl parametr "lpFileName"
jenž určuje ze kterého souboru *.INI se bude číst. Nejste tedy omezeni jen na WIN.INI,
ale můžete si sami určit vlastní *.INI soubor.

© 2005 Jindřich Mach & Jan Ticháček