Page 1 sur 1

Actualiser les clés DragHeight & DragWidth

Posté : mer. 17 févr. 2016 11:08
par devauto
Bonjour à tous!

Je cherche à limiter le déplacement de fichiers "accidentels" dans les fenêtres FileSelectFolder() & FileSaveDialog().
Ne trouvant aucun paramètre propre à ces fonctions je me suis tourné vers la base de registre pour modifier les clés suivantes :

- HKEY_CURRENT_USER\Control Panel\Desktop\DragHeight
- HKEY_CURRENT_USER\Control Panel\Desktop\DragWidth

J'aimerai modifier ces clés à l'ouverture et à la fermeture des fenêtres FileSelectFolder() & FileSaveDialog().
J'arrive à modifier les clés mais, hormis en redémarrant l'ordinateur, je ne trouve pas de solution pour rafraichir instantanément les paramètres utilisateurs.

Code : Tout sélectionner

#RequireAdmin
#include <MsgBoxConstants.au3>
#include <WinAPI.au3>
#include <WinAPIsysinfoConstants.au3>
#include <WindowsConstants.au3>

global $dragHeight, $dragWidth

readDrag("Valeurs initiales")

RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "DragHeight", "REG_SZ", switchDrag($dragHeight))
_WinAPI_SystemParametersInfo($SPI_SETDRAGHEIGHT, 0)
RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "DragWidth", "REG_SZ", switchDrag($dragWidth))
_WinAPI_SystemParametersInfo($SPI_SETDRAGWIDTH, 0)

;force user update
$func="UpdatePerUserSystemParameters"
RunWait("rundll32 USER32.DLL," & $func)
sleep(500)

readDrag("Nouvelles valeurs")

Func readDrag($title)
	$dragHeight = RegRead("HKEY_CURRENT_USER\Control Panel\Desktop", "DragHeight")
	$dragWidth = RegRead("HKEY_CURRENT_USER\Control Panel\Desktop", "DragWidth")
	MsgBox($MB_SYSTEMMODAL, $title, "Height : " & $dragHeight & @LF & "Width : " & $dragWidth)
EndFunc

Func switchDrag($string)
	If $string == 4 Then Return 50
	Return 4
EndFunc

Re: Actualiser les clés DragHeight & DragWidth  

Posté : mer. 17 févr. 2016 14:46
par jguinch
Tu as essayé avec ça ?

Code : Tout sélectionner

 _WinAPI_SystemParametersInfo ( $SPI_SETDRAGWIDTH, 0, 0, $SPIF_UPDATEINIFILE)

[R] Actualiser les clés DragHeight & DragWidth

Posté : mer. 17 févr. 2016 20:48
par devauto
Parfait !
C'est exactement ce que je cherchais !

Même plus besoin de RegWrite()

Code : Tout sélectionner

_WinAPI_SystemParametersInfo($SPI_SETDRAGWIDTH, 1000, 0, $SPIF_UPDATEINIFILE)
Merci !