Accueil > > > EXECUTER EN TANT QUE... DE MANIÈRE TRANSPARENTE POUR L'UTILISATEUR
EXECUTER EN TANT QUE... DE MANIÈRE TRANSPARENTE POUR L'UTILISATEUR
Information sur la source
Description
Ca permet à un utilisateur avec un compte limité de pouvoir lancer un programme qui demande d'avoir des droits d'administrateur sans que celui ci n'ait à taper le mot de passe. Par exemple, il est impossible de lancer Half Life sur un compte limité, on doit faire Executer en tant que et taper le mot de passe à chaque fois. Voilà la solution:
Source
- Créer un module genre module1.bas:
-
- Private Const SW_SHOWNORMAL = 1
- Private Const LOGON_WITH_PROFILE = &H1&
- Private Const LOGON_NETCREDENTIALS_ONLY = &H2&
- Private Const CREATE_DEFAULT_ERROR_MODE = &H4000000
- Private Const CREATE_NEW_CONSOLE = &H10&
- Private Const CREATE_NEW_PROCESS_GROUP = &H200&
- Private Const CREATE_SEPARATE_WOW_VDM = &H800&
- Private Const CREATE_SUSPENDED = &H4&
- Private Const CREATE_UNICODE_ENVIRONMENT = &H400&
- Private Const ABOVE_NORMAL_PRIORITY_CLASS = &H8000&
- Private Const BELOW_NORMAL_PRIORITY_CLASS = &H4000&
- Private Const HIGH_PRIORITY_CLASS = &H80&
- Private Const IDLE_PRIORITY_CLASS = &H40&
- Private Const NORMAL_PRIORITY_CLASS = &H20&
- Private Const REALTIME_PRIORITY_CLASS = &H100&
-
- Public Type STARTUPINFO
- cb As Long
- lpReserved As String
- lpDesktop As String
- lpTitle As String
- dwX As Long
- dwY As Long
- dwXSize As Long
- dwYSize As Long
- dwXCountChars As Long
- dwYCountChars As Long
- dwFillAttribute As Long
- dwFlags As Long
- wShowWindow As Integer
- cbReserved2 As Integer
- lpReserved2 As Long
- hStdInput As Long
- hStdOutput As Long
- hStdError As Long
- End Type
-
- Public Type PROCESS_INFORMATION
- hProcess As Long
- hThread As Long
- dwProcessID As Long
- dwThreadID As Long
- End Type
-
- Declare Function CreateProcessWithLogon Lib "Advapi32" Alias "CreateProcessWithLogonW" (ByVal lpUsername As Long, ByVal lpDomain As Long, ByVal lpPassword As Long, ByVal dwLogonFlags As Long, ByVal lpApplicationName As Long, ByVal lpCommandLine As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInfo As PROCESS_INFORMATION) As Long
-
-
-
- Puis dans votre Form1:
-
- Private Sub Form_Load()
-
- Dim Startup As STARTUPINFO
- Dim ProcessInf As PROCESS_INFORMATION
- Dim return_value As Long
- Dim app_to_run As String
- Startup.cb = Len(Startup)
- lpDomain = "." 'C'est ce qu'il faut mettre pour XP
- app_to_run = "c:\Sierra\Half-Life\hl.exe" 'On veut lancer Half life par exemple
- lpCommandLine = vbNullString
- lpCurrentDirectory = vbNullString
- Login = "Login" 'Nom du compte sur lequel on veut se logger
- Pass = "Password" 'Mot de passe pour ce compte
-
- return_value = CreateProcessWithLogon(StrPtr(Login), StrPtr(lpDomain), StrPtr(Pass), LOGON_WITH_PROFILE, StrPtr(app_to_run), StrPtr(lpCommandLine), CREATE_DEFAULT_ERROR_MODE, ByVal 0&, StrPtr(lpCurrentDirectory), Startup, ProcessInf)
-
- End Sub
-
Créer un module genre module1.bas:
Private Const SW_SHOWNORMAL = 1
Private Const LOGON_WITH_PROFILE = &H1&
Private Const LOGON_NETCREDENTIALS_ONLY = &H2&
Private Const CREATE_DEFAULT_ERROR_MODE = &H4000000
Private Const CREATE_NEW_CONSOLE = &H10&
Private Const CREATE_NEW_PROCESS_GROUP = &H200&
Private Const CREATE_SEPARATE_WOW_VDM = &H800&
Private Const CREATE_SUSPENDED = &H4&
Private Const CREATE_UNICODE_ENVIRONMENT = &H400&
Private Const ABOVE_NORMAL_PRIORITY_CLASS = &H8000&
Private Const BELOW_NORMAL_PRIORITY_CLASS = &H4000&
Private Const HIGH_PRIORITY_CLASS = &H80&
Private Const IDLE_PRIORITY_CLASS = &H40&
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const REALTIME_PRIORITY_CLASS = &H100&
Public Type STARTUPINFO
cb As Long
lpReserved As String
lpDesktop As String
lpTitle As String
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Public Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessID As Long
dwThreadID As Long
End Type
Declare Function CreateProcessWithLogon Lib "Advapi32" Alias "CreateProcessWithLogonW" (ByVal lpUsername As Long, ByVal lpDomain As Long, ByVal lpPassword As Long, ByVal dwLogonFlags As Long, ByVal lpApplicationName As Long, ByVal lpCommandLine As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInfo As PROCESS_INFORMATION) As Long
Puis dans votre Form1:
Private Sub Form_Load()
Dim Startup As STARTUPINFO
Dim ProcessInf As PROCESS_INFORMATION
Dim return_value As Long
Dim app_to_run As String
Startup.cb = Len(Startup)
lpDomain = "." 'C'est ce qu'il faut mettre pour XP
app_to_run = "c:\Sierra\Half-Life\hl.exe" 'On veut lancer Half life par exemple
lpCommandLine = vbNullString
lpCurrentDirectory = vbNullString
Login = "Login" 'Nom du compte sur lequel on veut se logger
Pass = "Password" 'Mot de passe pour ce compte
return_value = CreateProcessWithLogon(StrPtr(Login), StrPtr(lpDomain), StrPtr(Pass), LOGON_WITH_PROFILE, StrPtr(app_to_run), StrPtr(lpCommandLine), CREATE_DEFAULT_ERROR_MODE, ByVal 0&, StrPtr(lpCurrentDirectory), Startup, ProcessInf)
End Sub
Conclusion
Vous pouvez mettre form1.visible à false et l'utilisateur aura l'impression d'avoir cliqué sur un simple raccourci
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
urgent: utilisation d'une fonction d'une dll ecrite en C dans un programme VB [ par gep ]
je suis en train de développeer un application pour permettre une installation facilitée de fichier palm pilote a partir du webpour obtenir les inform
Trouver le(s) groupe(s) NT d'un User [ par cgui ]
Existe t'il une API ou autres me permettant de retrouver à quel groupe NT appartient un user que l'on passe en paramètre ?
Je voudrais un peu d'aide...(LISTE DE USER SUR CHANNEL IRC) [ par KL ]
Voilà, je fais un client IRC en VB avec Winsock, mais la.....heu, j'ai pb pour extraire les noms des users présents sur un Channel...Bon, ben merci.
ADOX [ par Evangelion ]
Quand je veux utiliser les propriétés ou les méthodes ADOX (User.Append, User.ChangePassword...), je recoit un message d'erreur indiquant que ces fonc
User Account [ par djh3o ]
Comment lancer la fenetre windows de gestion d'utilisateur reseau comme il est accessible a partir des outils d'administration d'un Win NT ou 2000 (ou
ADD USER DANS WIN 2K [ par Nicky ]
S'est pour savoir si y a moyen avec des api's d'ajouter automatiquement une list d'user sous win2000.Et si oui quelles sont ces api's et comment ca fo
Récupérer le User NT [ par rst ]
Question toute bête :Comment puis-je faire pour récupérer le login d'un user connecté à un serveur NT pour le réutiliser dans mon application (je n'ai
heu help :)! svp sur les datagrid [ par Angelus ]
salut!alors j'ai une grid contenant les données d'une table, sur 3 colonnes, avec selection de la ligne entière par l'user.j'ai ma form1 sur laquelle
User actif ds windows xp... [ par Pof ]
j'aimerais savoir comment faire pour faire une fonction que quand je l'appelle, elle me retourne le nom de l'user actif... en fait, ds windows xp, on
Copie de fichier via réseau avec User et Mot de passe [ par DavidT ]
J'ai créé une application de Backup qui me permet de copie et de compresser un ensemble de fichiers et les place sur un serveur.Pour cela, j'ai du met
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
LIST GENERICS 2LIST GENERICS 2 par JLuc01
Cliquez pour lire la suite par JLuc01
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|