Voiko VB:llä tunnistaa Windowsiin sisäänkirjautuneen käyttäjän jotenkin? Pitäisi siis saada nimi tietoon.
Ainakin Win2000:lla näyttää toimivan WinApin GetUserName-funktio. Huomaa, että merkkijonon pituus on määritettävä, muuten ohjelma "suorittaa laittoman toiminnon".
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Sub Form_Load()
Dim x As Long, nimi As String * 255
x = GetUserName(nimi, 255)
MsgBox "Käyttäjän nimi on " & nimi
End SubPelittää XP:ssä ainakin ihan suoraan kaiken pituisilla käyttäjänimillä. Kiitti =)
Toimii NT-pohjaisten lisäksi myös 95 ja 98 -versioilla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.