[R]Incrustation d'icones dans la barre de menu

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

[R]Incrustation d'icones dans la barre de menu

#1

Message par someonescripting »

Bonjour,

Je viens de faire un petit proof of concept d'une barre de menu dans une fenêtre afin d'y afficher des icônes en ayant arrangé un exemple trouvé sur le net.

Code : Tout sélectionner

#pragma compile(Icon, .\ICO\POW10.ico)
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <Constants.au3>
#include <GUIConstants.au3>
#include <GUIMenu.au3>
#include <GDIPlus.au3>
#RequireAdmin

Opt ("GUIOnEventMode", 1)

Global $StopScript = False

#Region ### START Koda GUI section ###
Global $Form1 = GUICreate("Form1", 260, 200, 192, 124)
Global $MenuItemFile = GUICtrlCreateMenu("&Fichier")
Global $MenuItemSystemInfo = GUICtrlCreateMenuItem("&Informations système", $MenuItemFile)
Global $MenuItemSeparation1 = GUICtrlCreateMenuItem("", $MenuItemFile, 2)
Global $MenuItemAllCheck = GUICtrlCreateMenuItem("Tout &coher", $MenuItemFile)
Global $MenuItemAllUncheck = GUICtrlCreateMenuItem("Tout &décocher", $MenuItemFile)
Global $MenuItemSeparation2 = GUICtrlCreateMenuItem("", $MenuItemFile, 5)
Global $MenuItemExit = GUICtrlCreateMenuItem("&Quitter", $MenuItemFile)
Global $MenuItemHelp = GUICtrlCreateMenu("&?")
Global $MenuItemAbout = GUICtrlCreateMenuItem("A &Propos", $MenuItemHelp)

_GDIPlus_Startup()

Global $IconSystemInfo = _WinAPI_LoadImage(2, ".\ICO\InfoSys.ico", $IMAGE_ICON, 16, 16, $LR_LOADFROMFILE)
Global $IconAllCheck = _WinAPI_LoadImage(2, ".\ICO\Check.ico", $IMAGE_ICON, 16, 16, $LR_LOADFROMFILE)
Global $IconAllUnCheck = _WinAPI_LoadImage(2, ".\ICO\Uncheck.ico", $IMAGE_ICON, 16, 16, $LR_LOADFROMFILE)
Global $IconExit = _WinAPI_LoadImage(2, ".\ICO\Exit.ico", $IMAGE_ICON, 16, 16, $LR_LOADFROMFILE)
Global $IconAbout = _WinAPI_LoadImage(2, ".\ICO\About.ico", $IMAGE_ICON, 16, 16, $LR_LOADFROMFILE)

Global $BitmapSystemInfo = _GDIPlus_BitmapCreateFromHICON($IconSystemInfo)
Global $BitmapAllCheck = _GDIPlus_BitmapCreateFromHICON($IconAllCheck)
Global $BitmapAllUnCheck = _GDIPlus_BitmapCreateFromHICON($IconAllUnCheck)
Global $BitmapExit = _GDIPlus_BitmapCreateFromHICON($IconExit)
Global $BitmapAbout = _GDIPlus_BitmapCreateFromHICON($IconAbout)

Global $GDIBitmapSystemInfo = _GDIPlus_BitmapCreateHBITMAPFromBitmap($BitmapSystemInfo)
Global $GDIBitmapAllCheck = _GDIPlus_BitmapCreateHBITMAPFromBitmap($BitmapAllCheck)
Global $GDIBitmapAllUnCheck = _GDIPlus_BitmapCreateHBITMAPFromBitmap($BitmapAllUnCheck)
Global $GDIBitmapExit = _GDIPlus_BitmapCreateHBITMAPFromBitmap($BitmapExit)
Global $GDIBitmapAbout = _GDIPlus_BitmapCreateHBITMAPFromBitmap($BitmapAbout)

_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemFile), 0, $GDIBitmapSystemInfo)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemFile), 2, $GDIBitmapAllCheck)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemFile), 3, $GDIBitmapAllUnCheck)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemFile), 5, $GDIBitmapExit)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemHelp), 0, $GDIBitmapAbout)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

#Region GUI2
Global $Form2 = GUICreate("Form2", 200, 100)

GUISetState(@SW_HIDE)
#EndRegion GUI2

GUISetOnEvent ($GUI_EVENT_CLOSE, "STOP", $Form1)
GUISetOnEvent ($GUI_EVENT_CLOSE, "CLOSEINFOSYS", $Form2)
GUICtrlSetOnEvent ($MenuItemExit, "STOP")
GUICtrlSetOnEvent ($MenuItemSystemInfo, "OPENINFOSYS")


While Not $StopScript
	Sleep (100)
WEnd

Func STOP()
	_GDIPlus_BitmapDispose($BitmapSystemInfo)
	_GDIPlus_BitmapDispose($BitmapAllCheck)
	_GDIPlus_BitmapDispose($BitmapAllUnCheck)
	_GDIPlus_BitmapDispose($BitmapExit)
	_GDIPlus_BitmapDispose($BitmapAbout)

	_WinAPI_DeleteObject($GDIBitmapSystemInfo)
	_WinAPI_DeleteObject($GDIBitmapAllCheck)
	_WinAPI_DeleteObject($GDIBitmapAllUnCheck)
	_WinAPI_DeleteObject($GDIBitmapExit)
	_WinAPI_DeleteObject($GDIBitmapAbout)

	_WinAPI_DestroyIcon($IconSystemInfo)
	_WinAPI_DestroyIcon($IconAllCheck)
	_WinAPI_DestroyIcon($IconAllUnCheck)
	_WinAPI_DestroyIcon($IconExit)
	_WinAPI_DestroyIcon($IconAbout)

	_GDIPlus_Shutdown()
	$StopScript = True
EndFunc

Func OPENINFOSYS()
	GUISetState (@SW_SHOW, $Form2)
EndFunc

Func CLOSEINFOSYS()
	GUISetState (@SW_HIDE, $Form2)
EndFunc
Ma question est la suivante : Je dispose d’icônes au format "ico" (je peux les convertir ou en trouver d'autre en bmp/png etc) en 16x16. Connaitriez vous une méthode plus simple (ou plus optimisé) afin d'arriver au même résultat ?

Avec la méthode précédente, certain de mes icônes sont comme "baveux" alors que les fichiers "ico" parraissent propre (question de conversion en bitmap ?)

Merci d'avance.
Modifié en dernier par someonescripting le mer. 08 juil. 2020 00:00, modifié 3 fois.
Un bon informaticien, est un informaticien fainéant !
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..]Incrustation d'icones dans la barre de menu

#2

Message par walkson »

Bonjour,
Je vous mets un exemple polyvalent (Pic, button, menu, contextmenu) et pour tous types d'images

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <GuiMenu.au3>
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
$GUI = GUICreate("Test",250,200)
Global $Pic1 = GUICtrlCreatePic("", 0, 0, 250, 200, $SS_BITMAP)
GUICtrlSetState(-1, $GUI_DISABLE)
$img = ADD_image(@ProgramFilesDir & "\AutoIt3\Examples\Helpfile\Extras\Hatch.bmp",250, 200)
$hb = GUICtrlSendMsg($Pic1, $STM_SETIMAGE, $IMAGE_BITMAP, $img)
If $hb Then _WinAPI_DeleteObject($hb)
$boutonArbo = GUICtrlCreateButton("clique droit",50,50,140,40)
$bouton = GUICtrlCreateButton("",50,100,140,40,BitOR($BS_BITMAP,$BS_CENTER,$BS_VCENTER))
;===================================================================
Global $idFilemenu = GUICtrlCreateMenu("&File")
$Hmenu = GUICtrlGetHandle($idFilemenu) ; handle du menu
Global $idFileitem = GUICtrlCreateMenuItem("Open", $idFilemenu)
GUICtrlSetState(-1, $GUI_DEFBUTTON)
Global $idExititem = GUICtrlCreateMenuItem("Exit", $idFilemenu)
GUICtrlCreateMenuItem("Save", $idFilemenu)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $idHelpmenu = GUICtrlCreateMenu("?")
Global $idInfoitem = GUICtrlCreateMenuItem("Info", $idHelpmenu)
;====================================================================
Global $contexte = GUICtrlCreateContextMenu($boutonArbo) ;ID du menu
$Hcontexte = GUICtrlGetHandle($contexte) ; handle du menu
GUISetState(@SW_SHOW,$GUI)
;============== items du menu =================================
	$e_idNew = GUICtrlCreateMenuItem("&New",$contexte)
	$e_idOpen = GUICtrlCreateMenuItem("&open",$contexte)
	$e_idSave = GUICtrlCreateMenuItem("&Save",$contexte)
;============= charge les images =============================
	$img1 = ADD_image(@ProgramFilesDir & "\AutoIt3\Examples\GUI\Torus.png",32, 32) ;ADD_image(chemin, largeur, hauteur)
	$img2 = ADD_image(@ProgramFilesDir & "\AutoIt3\Examples\GUI\merlin.gif",32, 32)
	$img3 = ADD_image(@ProgramFilesDir & "\AutoIt3\Examples\Helpfile\Extras\Exclamation.png",32, 32)
	$img4 = ADD_image(@ProgramFilesDir & "\AutoIt3\Examples\Helpfile\Extras\Soccer.ico",32, 32)
	$img5 = ADD_image(@ProgramFilesDir & "\AutoIt3\Examples\Helpfile\Extras\Arrow.ico",32, 32)
	$img6 = ADD_image(@ProgramFilesDir & "\AutoIt3\Examples\Helpfile\Extras\Script.ico",32, 32)
;============ enregistre les images sur les items ====================
	_GUICtrlMenu_SetItemBmp($Hcontexte, 0, $img1)
	_GUICtrlMenu_SetItemBmp($Hcontexte, 1, $img2)
	_GUICtrlMenu_SetItemBmp($Hcontexte, 2, $img3)
	_GUICtrlMenu_SetItemBmp($Hmenu, 0, $img4)
	_GUICtrlMenu_SetItemBmp($Hmenu, 1, $img5)
	_GUICtrlMenu_SetItemBmp($Hmenu, 2, $img6)
	$hb = GUICtrlSendMsg($bouton, $BM_SETIMAGE, $IMAGE_BITMAP, $img3)
	If $hb Then _WinAPI_DeleteObject($hb)

While 1
       $msg = GUIGetMsg()
	   Switch $msg
		   Case $GUI_EVENT_CLOSE, $idExititem
			   _WinAPI_DeleteObject($img1)
			   _WinAPI_DeleteObject($img2)
			   _WinAPI_DeleteObject($img3)
			   _WinAPI_DeleteObject($img4)
			   _WinAPI_DeleteObject($img5)
			   _WinAPI_DeleteObject($img6)
			    Exit
		   Case $e_idNew
			   MsgBox(0,"","New")
		   Case $idFileitem, $e_idOpen
			   FileOpenDialog("Choose file...", @DesktopDir, "All (*.*)")

	   EndSwitch
WEnd

Func ADD_image($sFile,$W = 128, $H = 128) ;crer un Hbitmap selon chemin
	_GDIPlus_Startup()
	$hBitmap = _GDIPlus_BitmapCreateFromFile ($sFile) ; charge image
	$hBitmap= _GDIPlus_ImageResize($hBitmap, $W , $H) ;redimensionne pour rentrer dans le menu
	$hGraphic = _GDIPlus_ImageGetGraphicsContext($hBitmap) ;crée un graphic selon l'image
	_GDIPlus_GraphicsSetCompositingQuality($hGraphic, 2) ;améliore la qualité non indispensable
	_GDIPlus_GraphicsSetInterpolationMode($hGraphic, 7) ;améliore la qualité non indispensable
	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, $GDIP_SMOOTHINGMODE_HIGHQUALITY) ;améliore la qualité non indispensable
    _GDIPlus_GraphicsDrawImageRectRect($hGraphic, $hBitmap, 0, 0,$W,$H, 0, 0,$W,$H) ;dessine l'image dans le graphic
	$hBMP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap) ;crée un Hbitmap adaptable au menu à partir du bitmap
    _GDIPlus_BitmapDispose($hBitmap) ;nettoie
	_GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
Return $hBMP ;retourne le handle du Hbitmap
EndFunc

Vérifiez les chemins mais normalement ils doivent être bons
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [..]Incrustation d'icones dans la barre de menu

#3

Message par someonescripting »

Que ferais-je sans la communauté de AutoItscript.fr ?

Encore une fois merci à toi @walkson ! (Et en plus, la fonction est commenté, ça c'est le top ! =D)

Adapté a mon petit bout de code précédent cela donne :

Code : Tout sélectionner

#pragma compile(Icon, .\ICO\POW10.ico)
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <Constants.au3>
#include <GUIConstants.au3>
#include <GUIMenu.au3>
#include <GDIPlus.au3>

Opt("MustDeclareVars", 1)
Opt ("GUIOnEventMode", 1)

Global $StopScript = False

#Region ### START Koda GUI section ###
Global $Form1 = GUICreate("Form1", 260, 200, 192, 124)
Global $MenuItemFile = GUICtrlCreateMenu("&Fichier")
Global $MenuItemSystemInfo = GUICtrlCreateMenuItem("&Informations système", $MenuItemFile)
Global $MenuItemSeparation1 = GUICtrlCreateMenuItem("", $MenuItemFile, 2)
Global $MenuItemAllCheck = GUICtrlCreateMenuItem("Tout &coher", $MenuItemFile)
Global $MenuItemAllUncheck = GUICtrlCreateMenuItem("Tout &décocher", $MenuItemFile)
Global $MenuItemSeparation2 = GUICtrlCreateMenuItem("", $MenuItemFile, 5)
Global $MenuItemExit = GUICtrlCreateMenuItem("&Quitter", $MenuItemFile)
Global $MenuItemHelp = GUICtrlCreateMenu("&?")
Global $MenuItemAbout = GUICtrlCreateMenuItem("A &Propos", $MenuItemHelp)

Global $imgSystemInfo = _ADD_image(".\ICO\Infosys.ico",16, 16) ;ADD_image(chemin, largeur, hauteur)
Global $imgAllCheck = _ADD_image(".\ICO\Check.ico",16, 16)
Global $imgAllUnCheck = _ADD_image(".\ICO\Uncheck.ico",16, 16)
Global $imgExit = _ADD_image(".\ICO\Exit.ico",16, 16)
Global $imgAbout = _ADD_image(".\ICO\About.ico",16, 16)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemFile), 0, $imgSystemInfo)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemFile), 2, $imgAllCheck)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemFile), 3, $imgAllUnCheck)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemFile), 5, $imgExit)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemHelp), 0, $imgAbout)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

#Region GUI2
Global $Form2 = GUICreate("Form2", 200, 100)
GUISetState(@SW_HIDE)
#EndRegion GUI2

GUISetOnEvent ($GUI_EVENT_CLOSE, "_STOP", $Form1)
GUICtrlSetOnEvent ($MenuItemExit, "_STOP")
GUICtrlSetOnEvent ($MenuItemSystemInfo, "_OPENINFOSYS")
GUISetOnEvent ($GUI_EVENT_CLOSE, "_CLOSEINFOSYS", $Form2)

While NOT $StopScript
	Sleep (100)
WEnd

Func _ADD_image($sFile,$W = 128, $H = 128) ;crer un Hbitmap selon chemin
	_GDIPlus_Startup()
	Local $hBitmap = _GDIPlus_BitmapCreateFromFile ($sFile) ; charge image
	$hBitmap= _GDIPlus_ImageResize($hBitmap, $W , $H) ;redimensionne pour rentrer dans le menu
	Local $hGraphic = _GDIPlus_ImageGetGraphicsContext($hBitmap) ;crée un graphic selon l'image
	_GDIPlus_GraphicsSetCompositingQuality($hGraphic, 2) ;améliore la qualité non indispensable
	_GDIPlus_GraphicsSetInterpolationMode($hGraphic, 7) ;améliore la qualité non indispensable
	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, $GDIP_SMOOTHINGMODE_HIGHQUALITY) ;améliore la qualité non indispensable
    _GDIPlus_GraphicsDrawImageRectRect($hGraphic, $hBitmap, 0, 0,$W,$H, 0, 0,$W,$H) ;dessine l'image dans le graphic
	Local $hBMP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap) ;crée un Hbitmap adaptable au menu à partir du bitmap
    _GDIPlus_BitmapDispose($hBitmap) ;nettoie
	_GDIPlus_GraphicsDispose($hGraphic) ;nettoie
    _GDIPlus_Shutdown()
	Return $hBMP ;retourne le handle du Hbitmap
EndFunc

Func _OPENINFOSYS()
	GUISetState (@SW_SHOW, $Form2)
EndFunc

Func _CLOSEINFOSYS()
	GUISetState (@SW_HIDE, $Form2)
EndFunc

Func _STOP()
	_WinAPI_DeleteObject($imgSystemInfo)
	_WinAPI_DeleteObject($imgAllCheck)
	_WinAPI_DeleteObject($imgAllUnCheck)
	_WinAPI_DeleteObject($imgExit)
	_WinAPI_DeleteObject($imgAbout)
	$StopScript = True
EndFunc
Plus propre, moins de ligne, et des icônes au moins 4x mieux représenté =D
Un bon informaticien, est un informaticien fainéant !
Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [..]Incrustation d'icones dans la barre de menu

#4

Message par someonescripting »

Bonsoir, je me permet de ré-ouvrir ce post car je rencontre un petit problème ...

Lorsque je compile mon script, et que l'exe est dans le dossier du script, aucun problème, mais si je déplace l'exe admettons sur le bureau, lorsque je lance celui-ci, les icônes dans ma barre de menu ne s'affiche pas ...
J'imagine que je doit inclure mes fichier ICO au script ? (Je souhaiterais autant que faire ce peux avoir juste un exe standalone, sans dépendre d'autre dossiers ou fichiers)

Des idées ?

Merci d'avance !
Un bon informaticien, est un informaticien fainéant !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Incrustation d'icones dans la barre de menu

#5

Message par Tlem »

Bonsoir.
La fonction FileInstall() est votre amie. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [..]Incrustation d'icones dans la barre de menu

#6

Message par someonescripting »

Bonsoir @Tlem,

Merci pour votre réponse, j'ai bien pensé à la fonction FileInstall, mais cela m'impose de les installer quelque part.
Serait-ce possible de les "include" uniquement dans le script et d'y faire appel ensuite ?

Merci.
Un bon informaticien, est un informaticien fainéant !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Incrustation d'icones dans la barre de menu

#7

Message par Tlem »

Cette fonction permet d'inclure un ou plusieurs fichiers dans votre script.
L'appel à cette fonction dans votre code exécutera l'extraction de la ressource concernée dans le dossier de votre choix. Vous pouvez utiliser comme de nombreux autres logiciels le dossier temporaire de l'utilisateur. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [..]Incrustation d'icones dans la barre de menu

#8

Message par someonescripting »

Rebonsoir @Tlem.

Effectivement je n'avais pas pensé au dossier TEMP.
Maintenant un autre problème ce pose. Si je fait un FileInstall (".\ICO\Infosys.ico", @TempDir), cela ne marche pas ... Les fichiers ne sont pas installés, ni là, ni ailleurs.
Si je remplace @TempDir par admettons "C:\", pas de problème.
Je précise que j'ai mis #requireadmin en début de script.

Merci
Un bon informaticien, est un informaticien fainéant !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Incrustation d'icones dans la barre de menu  

#9

Message par Tlem »

Relisez la doc de FileInstall().
Il manque quelque chose pour la destination. :P
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [..]Incrustation d'icones dans la barre de menu

#10

Message par someonescripting »

Effectivement ... il manquait l'antislash.
Merci pour la remarque @Tlem.
Un bon informaticien, est un informaticien fainéant !
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [R]Incrustation d'icones dans la barre de menu

#11

Message par walkson »

Bonjour,
Je précise que j'ai mis #requireadmin en début de script.
Mais, c'est devenu une manie ! Voila plusieurs codes où je vois #requireadmin :shock:
D'abord #requireadmin ne corrige pas les erreurs et ensuite pour ouvrir la porte de votre frigo, vous ne demandez pas la permission du président de la république ! C'est un peu ce que vous faites ! Et je ne parle pas de la fenêtre que cela génère (permission) que je n'ai jamais réussi à fermer automatiquement à mon grand désespoir :(
A part quelques programmes qui demandent #requireadmin ou pour modifier des fichiers système (et encore !), #requireadmin est inutile
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [R]Incrustation d'icones dans la barre de menu

#12

Message par someonescripting »

Bonsoir @Walkson.

Je met le #requireadmin car c'est un script qui modifie surtout des clés de registre et lance des commandes Powershell en administrateur.
Est-ce un tort ?
Et je ne parle pas de la fenêtre que cela génère (permission) que je n'ai jamais réussi à fermer automatiquement à mon grand désespoir
C'est à dire ?
Un bon informaticien, est un informaticien fainéant !
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [R]Incrustation d'icones dans la barre de menu

#13

Message par walkson »

Pour le savoir, il faut lancer le code sans #requireadmin et de voir
Le fait de modifier les clefs du registre ne demande pas #requireadmin . Il faut tester. J'ai très peu de code qui modifie le registre sauf quand il s'agit de modifier le shell (clic droit de la souris)
[Edit]
Si vous modifiez votre message pendant que j'écris.....
Avec #requireadmin vous avez une fenêtre qui s'ouvre et vous demande l'autorisation de lancer le programme. C'est cette fenêtre que je n'ai jamais réussi à fermer automatiquement (control..., win...) et il semble que l'on ne peut pas la fermer en dehors du clic souris
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [R]Incrustation d'icones dans la barre de menu

#14

Message par someonescripting »

Pour le registre je me doutais, mais je lance des commandes Powershell qui nécessite les droits d'administrateur comme changer le nom de l'ordinateur ou modifier la gestion et la taille du ficher d'échange, entre autres.
Un bon informaticien, est un informaticien fainéant !
Répondre