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 Sub
Pelittää 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.