Private Declare Function IsNTAdmin Lib "advpack.dll" (ByVal dwReserved As Long, ByRef lpdwReserved As Long) As Long
Private Sub Command1_Click()
MsgBox est_administrateur()
End Sub
Private Function est_administrateur() As Boolean
est_administrateur = CBool(IsNTAdmin(ByVal 0&, ByVal 0&))
End Function
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionCela sous-entend que le Setup doit être lancé depuis un compte administrateur
Il faut le faire à l'aide d'une commande runas. Cette dernière n'aura toutefois aucune chance de succès si elle n'est pas lancée par un administrateur (heureusement !)
Il faut donc avant toute autre tentative, vérifier que celui sui lance ce setup est bien un administrateur (et qu'il est donc autorisé à lancer ensuite un runas).
On peut très bien lancer une commande RunAs depuis un compte User classique avec authentification administrateur
Private Declare Function ShellExecute Lib "shell32" _
Alias "ShellExecuteA" ( _
ByVal hWnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As VbAppWinStyle) As Long
ShellExecute hWnd, "runas /user:" & txtdom.Text & "\" & txtuser.Text, "App.Path & "\Project1.exe", vbNormalFocus
ShellExecute hWnd, "runas", App.Path & "\Project1.exe", "", "", vbNormalFocus
une idée?
msgbox "runas /user:" & txtdom.Text & "\" & txtuser.Text, "App.Path & "\Project1.exe"
ShellExecute hWnd, "runas /user:" & txtdom.Text & "\" & txtuser.Text, App.Path & "\Project1.exe", "", "", vbNormalFocus
txtdom.Textje renseigne le nom de la machine pour le compte admin local
txtuser.Textadministrateur
runas /noprofile /user:MonOrdinateur\administrateur cmd
MsgBox "runas /user:" & txtdom.Text & "\" & txtuser.Text, App.Path & "\Project1.exe"
MsgBox "runas /user:" & txtdom.Text & "\" & txtuser.Text & " " & App.Path & "\Project1.exe"
Private Declare Function IsNTAdmin Lib "advpack.dll" (ByVal dwReserved As Integer, ByRef lpdwReserved As Integer) As Integer
If Not IsNTAdmin(0&, 0&) <> 0 Then ' droits Admins requis
MsgBox "Pour continuer, veuillez lancer le programme en Mode Administrateur."
Unload Me
Exit Sub
End If