Connaître les "droits d'éxecution" du prog (administrateur)
Connaître les "droits d'éxecution" du prog (administrateur)
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.)
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
)
Mon site : CeriseCode (Attention Chantier perpétuel

Re: Connaître les "droits d'éxecution" du prog (administrate
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 ...

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"

Re: Connaître les "droits d'éxecution" du prog (administrate
...... code retiré , ne corresponds pas a la demande ..
Dernière modification par Backup le lun. 19/nov./2012 16:30, modifié 1 fois.
Re: Connaître les "droits d'éxecution" du prog (administrate
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.
Re: Connaître les "droits d'éxecution" du prog (administrate
parfait, je vais étudier vos exemples (@nico : j'avais trouvé ta méthode dans un post des astuce
)
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 !

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
)
Mon site : CeriseCode (Attention Chantier perpétuel

Re: Connaître les "droits d'éxecution" du prog (administrate
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)
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 "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
)
Mon site : CeriseCode (Attention Chantier perpétuel

Re: Connaître les "droits d'éxecution" du prog (administrate
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
Re: Connaître les "droits d'éxecution" du prog (administrate
Code : Tout sélectionner
If IsUserAnAdmin_() = #True
MessageRequester("Information","Is an Admin")
Else
MessageRequester("Information","Is not an Admin")
EndIf
---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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: Connaître les "droits d'éxecution" du prog (administrate
Chez moi ça fonctionne, mais tu dois cocher la case "requiert les droits d'utilisateurs" de purebasic, avant de tester.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...
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

_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel
)
Mon site : CeriseCode (Attention Chantier perpétuel

Re: Connaître les "droits d'éxecution" du prog (administrate
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

Re: Connaître les "droits d'éxecution" du prog (administrate
avec open au lieu de run, ça fonctionne.