Page 1 sur 1
Activer la base de registre sans reboot (Astuce)
Publié : lun. 02/janv./2012 11:14
par brossden
Bonjour et bonne année à toutes et à tous.
Pour débuter cette année je vous soumet une petite astuce que vous connaissez peut être déjà : Il s'agit de rendre actif immédiatement les modifications apportées sur la base de registre sans faire de reboot :
Code : Tout sélectionner
RunProgram("RUNDLL32.EXE","USER32.DLL,UpdatePerUserSystemParameters ,1 ,True","")
Re: Activer la base de registre sans reboot (Astuce)
Publié : lun. 02/janv./2012 11:37
par djes
Ah non, je ne connaissais pas, cool !

Merci !
Re: Activer la base de registre sans reboot (Astuce)
Publié : lun. 02/janv./2012 11:43
par Kwai chang caine
Est il nécessaire de dire que je connaissais pas
Merci DENIS trop top cool ton truc

J’espère que ça marche dans tous les cas, parce que des fois ils disent bien que quoi qu'on fasse un reboot est nécessaire
Quoi qu'il en soit, ça coute rien d'essayer avant et si ça marche pas, de sortir la big artillerie

Merci mon canard et bonne année avec je l’espère un retour journalier de ta royale personne sur ce forum

Re: Activer la base de registre sans reboot (Astuce)
Publié : lun. 02/janv./2012 12:52
par Ar-S

C'est juste une commande que je vais vénérer, rien de plus.
Énorme merci à toi !
Re: Activer la base de registre sans reboot (Astuce)
Publié : lun. 02/janv./2012 13:05
par brossden
Pour Kwai kwai... (comme crie mon chien !) mdr
Je ne sais pas si cela marche dans tous les cas mon gros Canard en Sucre !
Mais ce que je peux te dire c'est que par exemple si tu changes le nom du fichier te servant de fond d'écran dans la base de registre, le petit bout de code fonctionne à merveille !
Petite précision j'ai testé en Win XP 32 bits, c'est le système d'exploitation au boulot!
Pour les autres Merci n'en jetez plus !!
Re: Activer la base de registre sans reboot (Astuce)
Publié : lun. 02/janv./2012 13:45
par djes
Tu es beau, tu es grand.

Re: Activer la base de registre sans reboot (Astuce)
Publié : lun. 02/janv./2012 13:57
par Ar-S
Allez je vous plaque ma procédure RefreshBDR() utilisant cette sacrosainte ligne de commande
Code : Tout sélectionner
; Il s'agit de rendre actif immédiatement les modifications
; apportées sur la base de registre sans faire de reboot :
; Par Brossben
Procedure.b RefreshBDR(ARS_message_mode.b = 1) ; 0 = silent mode / 1 = messagerequester mode
; Par Ar-S / 02/01/2012 - Bonne année ! ^^
; Commande RunProgram(....) soufflé Par Brossden
; Fonctionnement : RefreshBDR([mode])
;
; Le 'mode' peut être 0 ou 1
; RefreshBDR(0) (par defaut) est le mode silencieux, vous n'aurez pas de retour en messagerequester().
; RefreshBDR(1) fait apparaitre un MessageRequester() vous indiquant si l'opération a réussi ou pas.
; Exemple
; Actualisation = RefreshBDR(1)
; Debug Actualisation
; Si 'Actualisation' est égale à 0 il y a une erreur, la modification n'a pas eu lieu
; Si 'Actualisation' est égale à 1 => Succés
; Si 'Actualisation' est égale à 2 ; Vous avez utilisé un mode inexistant
If ARS_message_mode = 0 Or ARS_message_mode = 1
refreshbdd = RunProgram("RUNDLL32.EXE","USER32.DLL,UpdatePerUserSystemParameters ,1 ,True","")
If refreshbdd = 0
AlertMess.s = "Echec ! La modification n'a pas pu être effectuée, vous devez avoir les droits administrateurs pour celà."+Chr(10)+"Pour celà, faites un clique droit sur le programme puis cliquer sur 'propriétés'. "+Chr(10)+"'Dans la fenêtre qui s'ouvre, selectionnez (en bas) 'Executez en temps qu'administrateur''"
Else
refreshbdd = 1
AlertMess.s = "Actualisation de la base de registre effectuée !"
EndIf
If ARS_message_mode = 1
MessageRequester("Information",AlertMess,#MB_OK|#MB_ICONINFORMATION)
EndIf
Else
MessageRequester("Erreur","Vous devez selectionner un mode (0 ou 1) uniquement."+Chr(10)+"RefreshBDR(0) ou RefreshBDR(1)", #MB_OK|#MB_ICONINFORMATION)
refreshbdd = 2
EndIf
ProcedureReturn refreshbdd
EndProcedure
Actualisation = RefreshBDR(1)
Debug Actualisation
Re: Activer la base de registre sans reboot (Astuce)
Publié : lun. 02/janv./2012 14:15
par djes
Re: Activer la base de registre sans reboot (Astuce)
Publié : lun. 02/janv./2012 14:20
par Ar-S
Je n'ai pas encore testé , en revanche aux vues des résultats de ma procedure ci dessus, le runprogram() s'effectue bien.
Re: Activer la base de registre sans reboot (Astuce)
Publié : lun. 02/janv./2012 19:53
par Kwai chang caine
Pour Kwai kwai... (comme crie mon chien !) mdr
Comme j'ai dit ça empêche pas d'essayer en premier, c'est comme avec les filles...le tout c'est de rester courtois !!!
Si windows se fâche alors on peut essayer autre chose....
Apparemment DJES a trouvé que ça allait pas durer...des que y'a une API qui est super, bilou nous la vire:?
C’était comme celle qui remettait les compteurs a zéro pour la mise en veille, perdu pour VISTA

J’espère surtout qu'au pire ça ne fera rien dans W7...
En tout cas...trop cool ton API.....
Re: Activer la base de registre sans reboot (Astuce)
Publié : mar. 03/janv./2012 15:41
par brossden
Mais c'est qu'il mordrait cette sale bête ! lol
Je suis désolé de n'avoir donner qu'un solution pour Xp
Chez moi je suis en Seven et je vais tester d'autres solutions, si je trouve vous en aurez la primeur !
Re: Activer la base de registre sans reboot (Astuce)
Publié : mar. 03/janv./2012 18:09
par Kwai chang caine
Mais c'est qu'il mordrait cette sale bête ! lol
Depuis la réouverture du HS, j'ai juré d'essayer d’être sage, alors j'me suis fait refaire tous les chicos pour ce faire
Chez moi je suis en Seven et je vais tester d'autres solutions, si je trouve vous en aurez la primeur !
En tout cas encore merci

Re: Activer la base de registre sans reboot (Astuce)
Publié : mer. 04/janv./2012 11:25
par brossden
Avec Windows Seven et certainement aussi avec Vista il est vrai que cela ne fonctionne pas, mais il est possible d'utiliser l'API : SystemParametersInfo_(UINT __in uiAction, __in UINT uiParam, __inout PVOID pvParam, __in UINT fWinIni)
Le problème c'est que cette fonction n'est pas généraliste il faut suivant ce que l'on veut faire adapter les variables.
Le lien suivant est pour les non anglophones
http://translate.google.fr/translate?hl ... md%3Dimvns
Exemple pour réccuperer le nom du fond d'écran.
Code : Tout sélectionner
Fichier.s =Space(255)
res = SystemParametersInfo_($73, $100,@Fichier,$2)
Debug Fichier
Re: Activer la base de registre sans reboot (Astuce)
Publié : mer. 04/janv./2012 14:07
par Kwai chang caine
Cool ta trouvaille...
Apres t'avoir lu, j'suis tombé sur un code de KALE
http://www.purebasic.fr/english/viewtop ... 60#p156060
Code : Tout sélectionner
DeskTopWallPaper.s = Space(#MAX_PATH)
SystemParametersInfo_(#SPI_GETDESKWALLPAPER, #MAX_PATH, @DeskTopWallPaper, 0)
If DeskTopWallPaper
Debug DeskTopWallPaper
Else
Debug "No wallpaper found."
EndIf
Et ça m'a donné l'idée d'aller fouiner dans la liste des constantes PB (SPI ==> System Parametre Info) et j'crois même que
FRED y s'est fendu d'incorporer les constantes a mettre devant (Trop fort ce
FRED 
) :
Code : Tout sélectionner
#SPI_GETACCESSTIMEOUT
#SPI_GETACTIVEWINDOWTRACKING
#SPI_GETACTIVEWNDTRKTIMEOUT
#SPI_GETACTIVEWNDTRKZORDER
#SPI_GETANIMATION
#SPI_GETBEEP
#SPI_GETBORDER
#SPI_GETCOMBOBOXANIMATION
#SPI_GETDEFAULTINPUTLANG
#SPI_GETDRAGFULLWINDOWS
#SPI_GETFASTTASKSWITCH
#SPI_GETFILTERKEYS
#SPI_GETFONTSMOOTHING
#SPI_GETFOREGROUNDFLASHCOUNT
#SPI_GETFOREGROUNDLOCKTIMEOUT
#SPI_GETGRADIENTCAPTIONS
#SPI_GETGRIDGRANULARITY
#SPI_GETHIGHCONTRAST
#SPI_GETHOTTRACKING
#SPI_GETICONMETRICS
#SPI_GETICONTITLELOGFONT
#SPI_GETICONTITLEWRAP
#SPI_GETKEYBOARDDELAY
#SPI_GETKEYBOARDPREF
#SPI_GETKEYBOARDSPEED
#SPI_GETLISTBOXSMOOTHSCROLLING
#SPI_GETLOWPOWERACTIVE
#SPI_GETLOWPOWERTIMEOUT
#SPI_GETMENUANIMATION
#SPI_GETMENUDROPALIGNMENT
#SPI_GETMENUUNDERLINES
#SPI_GETMINIMIZEDMETRICS
#SPI_GETMOUSE
#SPI_GETMOUSEHOVERHEIGHT
#SPI_GETMOUSEHOVERTIME
#SPI_GETMOUSEHOVERWIDTH
#SPI_GETMOUSEKEYS
#SPI_GETMOUSESPEED
#SPI_GETMOUSETRAILS
#SPI_GETNONCLIENTMETRICS
#SPI_GETPOWEROFFACTIVE
#SPI_GETPOWEROFFTIMEOUT
#SPI_GETSCREENREADER
#SPI_GETSCREENSAVEACTIVE
#SPI_GETSCREENSAVERRUNNING
#SPI_GETSCREENSAVETIMEOUT
#SPI_GETSERIALKEYS
#SPI_GETSHOWIMEUI
#SPI_GETSHOWSOUNDS
#SPI_GETSOUNDSENTRY
#SPI_GETSTICKYKEYS
#SPI_GETTOGGLEKEYS
#SPI_GETWHEELSCROLLLINES
#SPI_GETWINDOWSEXTENSION
#SPI_GETWORKAREA
#SPI_ICONHORIZONTALSPACING
#SPI_ICONVERTICALSPACING
#SPI_LANGDRIVER
#SPI_SETACCESSTIMEOUT
#SPI_SETACTIVEWINDOWTRACKING
#SPI_SETACTIVEWNDTRKTIMEOUT
#SPI_SETACTIVEWNDTRKZORDER
#SPI_SETANIMATION
#SPI_SETBEEP
#SPI_SETBORDER
#SPI_SETCOMBOBOXANIMATION
#SPI_SETCURSORS
#SPI_SETDEFAULTINPUTLANG
#SPI_SETDESKPATTERN
#SPI_SETDESKWALLPAPER
#SPI_SETDOUBLECLICKTIME
#SPI_SETDOUBLECLKHEIGHT
#SPI_SETDOUBLECLKWIDTH
#SPI_SETDRAGFULLWINDOWS
#SPI_SETDRAGHEIGHT
#SPI_SETDRAGWIDTH
#SPI_SETFASTTASKSWITCH
#SPI_SETFILTERKEYS
#SPI_SETFONTSMOOTHING
#SPI_SETFOREGROUNDFLASHCOUNT
#SPI_SETFOREGROUNDLOCKTIMEOUT
#SPI_SETGRADIENTCAPTIONS
#SPI_SETGRIDGRANULARITY
#SPI_SETHANDHELD
#SPI_SETHIGHCONTRAST
#SPI_SETHOTTRACKING
#SPI_SETICONMETRICS
#SPI_SETICONS
#SPI_SETICONTITLELOGFONT
#SPI_SETICONTITLEWRAP
#SPI_SETKEYBOARDDELAY
#SPI_SETKEYBOARDPREF
#SPI_SETKEYBOARDSPEED
#SPI_SETLANGTOGGLE
#SPI_SETLISTBOXSMOOTHSCROLLING
#SPI_SETLOWPOWERACTIVE
#SPI_SETLOWPOWERTIMEOUT
#SPI_SETMENUANIMATION
#SPI_SETMENUDROPALIGNMENT
#SPI_SETMENUUNDERLINES
#SPI_SETMINIMIZEDMETRICS
#SPI_SETMOUSE
#SPI_SETMOUSEBUTTONSWAP
#SPI_SETMOUSEHOVERHEIGHT
#SPI_SETMOUSEHOVERTIME
#SPI_SETMOUSEHOVERWIDTH
#SPI_SETMOUSEKEYS
#SPI_SETMOUSESPEED
#SPI_SETMOUSETRAILS
#SPI_SETNONCLIENTMETRICS
#SPI_SETPENWINDOWS
#SPI_SETPOWEROFFACTIVE
#SPI_SETPOWEROFFTIMEOUT
#SPI_SETSCREENREADER
#SPI_SETSCREENSAVEACTIVE
#SPI_SETSCREENSAVERRUNNING
#SPI_SETSCREENSAVETIMEOUT
#SPI_SETSERIALKEYS
#SPI_SETSHOWIMEUI
#SPI_SETSHOWSOUNDS
#SPI_SETSOUNDSENTRY
#SPI_SETSTICKYKEYS
#SPI_SETTOGGLEKEYS
#SPI_SETWHEELSCROLLLINES
#SPI_SETWORKAREA
Enfin si j'me suis pas gourré ???
