Connaître les "droits d'éxecution" du prog (administrateur)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Connaître les "droits d'éxecution" du prog (administrateur)

Message par graph100 »

J'ai un soucis avec une de mes applications, on m'a rapporté un bug qui arrive après plusieurs lancements et qui est résolu par le lancement de l'appli en mode administrateur.

Moi je n'ai pas jamais rencontré ce bug, et je n'ai pas réussi à le reproduire. Néanmoins avec la description du soucis et sa résolution, j'ai déterminé qu'il s'agit de certains fonctions d'écriture du registre qui plantent lorsque le programme n'a pas les droits d'administrateurs. (je pense que c'est ça)

Il faudrait que je puisse savoir si le programme a été lancé avec les droits d'administrateurs ou pas. Et je n'ai pas trouvé comment faire ça.

(Ces fonctions ne sont pas vitales pour le programme, et je les ai mises pour justement une utilisation avec les droits d'administrateurs, au cas ou. Mais jusqu'à présent ça n'avait jamais généré de problème.)
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Connaître les "droits d'éxecution" du prog (administrate

Message par Backup »

je ne vais pas répondre a ta question exactement , mais ...

voici comment on lance un prg avec les droits administrateur
ça peut deja peut etre t'avancer , si tu fait un module séparé de ton prg
module qui pourrai ecrire dans le registre ...

Code : Tout sélectionner

; lancer un appli en mode administrateur
ShellExecute_(hWnd, "runas", "C:\Windows\Notepad.exe", 0, 0, #SW_SHOWNORMAL)  ; lance le notepad en mode admin grace a "runas"
;)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Connaître les "droits d'éxecution" du prog (administrate

Message par Backup »

...... code retiré , ne corresponds pas a la demande ..
Dernière modification par Backup le lun. 19/nov./2012 16:30, modifié 1 fois.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Connaître les "droits d'éxecution" du prog (administrate

Message par nico »

Faut pas confondre admin et élevation de privilèges, dans le premier cas, on trouve une fonction sur le forum anglais 'isadmin", pour l'autre tu pourrais vérifier si tu as les droits d'écriture et de supression dans le dossier de ton prog de program files.
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Connaître les "droits d'éxecution" du prog (administrate

Message par graph100 »

parfait, je vais étudier vos exemples (@nico : j'avais trouvé ta méthode dans un post des astuce :D )
Comme je dois déterminer si mon programme a ou non le droit d'écrire dans le registre, il faut que je sache si il est lancé avec l'option que windows offre.

Je peux aussi faire comme tu le suggère, Dobro, et mettre ces fonctions de registres dans un exécutable à part (c'est que je n'aime pas trop séparer mes programmes en plusieurs bouts :)
Car le fond du problème est que je ne dois pas lancer certaines fonctions si je ne suis pas dans le mode avec les bon droits.

Maintenant je ne vois pas trop qu'elle est la différence entre être admin et écrire dans le dossier exécution.
Il me semble que dans windows l'utilisateur "admin" a les droits nécessaires pour cela !?

Je teste ta méthode, et j'vous remonte les résultats !
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Connaître les "droits d'éxecution" du prog (administrate

Message par graph100 »

mmh, pas chouette !

Code : Tout sélectionner

; lancer un appli en mode administrateur
ShellExecute_(hWnd,"run" , "C:\Windows\Notepad.exe", 0, 0, #SW_SHOWNORMAL)  ; lance le note pad en mode user
; ShellExecute_(hWnd,"runas" , "C:\Windows\Notepad.exe", 0, 0, #SW_SHOWNORMAL)  ; lance le note pad en mode admin
Le mode "run" ne lance pas le programme.
Le mode "runas" lance le programme avec la boite qui demande si on veux vraiment le lancer, mais le prog me retourne qu'il est pas en "admin"

:?

Je comprend pas trop.
Je suis sur win7x64, avec le seul compte utilisateur de la machine (et administrateur, mais il faut que je clique sur ces boîtes pour confirmer. Je ne les aie pas déactivée)
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Connaître les "droits d'éxecution" du prog (administrate

Message par nico »

Ce simple code permettrait de savoir si le prog s'exécute avec les privilèges élevés

Code : Tout sélectionner

If IsUserAnAdmin_() = #True
  MessageRequester("Information","Is an Admin")
Else
  MessageRequester("Information","Is not an Admin")
EndIf
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Connaître les "droits d'éxecution" du prog (administrate

Message par Ar-S »

Code : Tout sélectionner

If IsUserAnAdmin_() = #True
  MessageRequester("Information","Is an Admin")
Else
  MessageRequester("Information","Is not an Admin")
EndIf
Étrange je suis admin et ça me retourne 0 (Windows 8 x64)


---edit---

trouvé
Sur le site de Crosoft, ils disent que ça fonctionne d'XP à Vista...
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Connaître les "droits d'éxecution" du prog (administrate

Message par graph100 »

Ar-S a écrit :Étrange je suis admin et ça me retourne 0 (Windows 8 x64)


---edit---

trouvé
Sur le site de Crosoft, ils disent que ça fonctionne d'XP à Vista...
Chez moi ça fonctionne, mais tu dois cocher la case "requiert les droits d'utilisateurs" de purebasic, avant de tester.
Ou alors tu compiles le programme, et tu le lances avec clic droit, "exécuter en tant d'administrateur"

C'est nickel nico, ça colle à mon problème :D
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Connaître les "droits d'éxecution" du prog (administrate

Message par Backup »

graph100 a écrit :mmh, pas chouette !


Le mode "run" ne lance pas le programme.
Le mode "runas" lance le programme avec la boite qui demande si on veux vraiment le lancer, mais le prog me retourne qu'il est pas en "admin"

:?

Je comprend pas trop.
Je suis sur win7x64, avec le seul compte utilisateur de la machine (et administrateur, mais il faut que je clique sur ces boîtes pour confirmer. Je ne les aie pas déactivée)

oui c'est une erreur de ma part , le mode "Run" ne fonctionne pas , j'ai retiré mon code pourri :)
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Connaître les "droits d'éxecution" du prog (administrate

Message par nico »

avec open au lieu de run, ça fonctionne.
Répondre