service windows n'arrive pas à récupérer variable d'environnement :(

service windows n'arrive pas à récupérer variable d'environnement :( - VB/VBA/VBS - Programmation

Marsh Posté le 26-04-2004 à 11:41:06    

youp,
 
 
j'ai besoin de récupérer le nom de l'utilisateur loggé (%USERNAME%) dans un programme qui est un service windows...
 
pour ca j'ai fait  
 
 
 


Public Function GetUserName() As String
Dim NameSpace As String
 
    On Error GoTo noUser
    NameSpace = "root\cimv2"    'c'est le namespace par défaut
    Set p_objSWbemServices = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\" & NameSpace)
     
    Set p_objSWbemObjectSet = p_objSWbemServices.ExecQuery("Select userName from Win32_ComputerSystem", , 48)
 
    For Each p_objSWbemObject In p_objSWbemObjectSet
        GetUserName = p_objSWbemObject.userName
        Exit Function
    Next
    Exit Function
noUser:
    GetUserName = ""
End Function


 
le problème, c'est que la fonction dure 1 minute 30 pour :sweat:  
 
 
donc je voudrais faire autrement, mais ca ne marche pas :(
 
 
j'ai essayé  
 

msgbox Environ("USERNAME" )


 
 

Private Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableA" (ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As Long) As Long
 
Public Function GetEnvVar(ByVal VarName As String) As String
    Dim sVar As String, lVar As Long
    lVar = 50 '(ceci représente le nombre max de charactères à récupérer...)
    sVar = String(lVar, 0)
    lVar = GetEnvironmentVariable(VarName, sVar, lVar)
    GetEnvVar = Left(sVar, lVar)
End Function
 
Private Sub Form_Load()
   msgbox GetEnvVar("USERNAME" )
End Sub


 
 
 
qui ne marchent pas. Ca marche si je les lance moi-même. Mais à partir de mon "service" windows, il me renvoie "". Je suppose que c'est le username qui à lancé le service et donc que c'est normal.
 
mais bon, ca ne m'arrange pas :p
 
 
 
un chtite aide quelqu'un ?
 
 
 
merci

Reply

Marsh Posté le 26-04-2004 à 11:41:06   

Reply

Marsh Posté le 26-04-2004 à 11:59:04    

yop bon, la fonction ne dure longtemps qu'à la première exécution (quand le pc démarre), donc on va dire que c'est bong...
 
 
sorry  :jap:


Message édité par art_dupond le 26-04-2004 à 11:59:21
Reply

Marsh Posté le 27-04-2004 à 10:06:02    

yop, j'ai trouvé ca sinon
 
http://vbnet.mvps.org/index.html?c [...] ername.htm
 
 
mais ca fait pas tout à fait ce que je veux...


Message édité par art_dupond le 27-04-2004 à 13:10:57
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed