Dans "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer", j'ai ajouté la clé "UseDefaultTile" de valeur DWORD 32 bits fixée à "1".
De cette façon, tous les comptes utilisateurs ont pour image utilisateur "user.bmp", située dans "C:\ProgramData\Microsoft\User Account Pictures" (Windows Vista, 7 et 8) ou "C:\ProgramData\Microsoft\Default Account Pictures" (Windows 8.1) ;
et il suffit de remplacer celle-ci par une autre image 24bits "user.bmp" de taille 128x128px pour la changer sur le LoginScreen, et de redémarrer l'Explorateur Windows pour changer aussi celle qui est dans le menu "Démarrer".
Si je remplace cette image manuellement ça fonctionne parfaitement, mais si j'utilise le script batch suivant (D:\Personnalisations\Themes\Theme_2\Theme_2.bat) l'image ne change pas :
Si je fais le script suivant, ça "vide" l'image (sans la supprimer), j’obtiens un cadre vide (contenu transparent) sur le LoginScreen, et l'image utilisateur (et son cadre) qui est dans menu "Démarrer" est complètement supprimée :
J'utilise Windows 7 Édition Familiale Premium et Windows 10 Famille, mais pour cette action là c'est uniquement Windows 7 que je vise (en x32 et x64).
Sauriez-vous comment faire en utilisant un .bat (ou un fichier appelé par celui-ci) pour copier "D:\Personnalisations\Themes\Theme_2\User Account Pictures\user.bmp" et la coller dans "C:\ProgramData\Microsoft\User Account Pictures" en remplaçant l'image existante, s'il-vous-plaît ?
Edit : Est-ce qu'un modérateur pourrait déplacer ce sujet dans "Autres langages (VBA, Ruby,...)", SVP ?
pour que la commande soit exécutée en tant qu'administrateur, s'il-vous-plaît ?
P.S : Mon compte utilisateur est un compte administrateur protégé par mot de passe, même si je suis l'unique utilisateur de mes ordinateurs.
Edit : Pour info, voilà les scripts que j'utilise pour changer de thème :
"Changer de thème.bat" ("Changer de thème.lnk" est exécuté à l'ouverture de session, en fenêtre réduite car je n'aime pas qu'une fenêtre s'affiche tout de suite quand j'ouvre une session ; j'attend que le minimum requis du système soit chargé avant d'agrandir cette fenêtre et de l'utiliser) :
@echo off
echo Voulez-vous changer de th確e ?
echo.
echo Liste des th確e :
echo.
echo 1 : NomDuTheme_1
echo 2 : NomDuTheme_2
echo 3 : NomDuTheme_3
echo.
set /p currentTheme=<"C:\Users\User_Name\Documents\Theme\CurrentTheme.txt"
echo Th確e actuel : %currentTheme%
echo.
echo Choix possibles :
echo.
echo [0] : Choix alBtoire du th確e.
echo [1-3] : Choix du th確e correspondant (sauf th確e actuel).
echo [Autre] : Garder le th確e actuel.
echo.
set /p choix=Quel est votre choix ?
::"Random Theme.lnk" au lieu de "Random Theme.bat" pour pouvoir attribuer une icône, car j'utilise aussi "Random Theme.lnk" en dehors de l'ouverture de session.
if %choix%==0 start "Random Theme" "D:\Personnalisations\Themes\System\Random Theme.lnk"
if %choix%==1 Set changerDeTheme=NomDuTheme_1
if %choix%==2 Set changerDeTheme=NomDuTheme_2
if %choix%==3 Set changerDeTheme=NomDuTheme_3
if %changerDeTheme%==%currentTheme% goto :eof
if %choix% GEQ 1 if %choix% LEQ 3 start "Change Theme" "D:\Personnalisations\Themes\System\Change Theme.bat" %changerDeTheme%
goto :eof
"Random Theme.bat" :
@echo off
Set /p currentTheme=<"C:\Users\User_Name\Documents\Theme\CurrentTheme.txt"
goto :SetRandomTheme
:SetRandomTheme
Set /a randomTheme=%random% %%3
Set /a randomTheme=%randomTheme%+1
if %randomTheme%==1 Set theme=NomDuTheme_1
if %randomTheme%==2 Set theme=NomDuTheme_2
if %randomTheme%==3 Set theme=NomDuTheme_3
goto :ChangeTheme
:ChangeTheme
if %currentTheme%==%theme% goto :SetRandomTheme
start "Change Theme" "D:\Personnalisations\Themes\System\Change Theme.bat" %theme%
goto :eof
"Change Theme.bat" (ce fichier est également utilisable en créant un raccourci "Change Theme.lnk" disposant de l'argument NomDuTheme_x ; exemple de cible : "D:\Personnalisations\Themes\System\Change Theme.bat" NomDuTheme_1) :
@echo off
Set processus="DSHost.exe"
for /f "tokens=1" %%i in ('tasklist /NH /FI "imagename eq %processus%"') do Set ff=%%i
if /i "%ff%"==%processus% (taskkill /f /im DSHost.exe)
Set processus="ObjectDock.exe"
for /f "tokens=1" %%i in ('tasklist /NH /FI "imagename eq %processus%"') do Set ff=%%i
if /i "%ff%"==%processus% (taskkill /f /im ObjectDock.exe)
Set /p currentObjectDock=<"C:\Users\User_Name\Documents\Theme\ObjectDock.txt"
Set /p objectDock=<"D:\Personnalisations\Themes\%1\Theme\ObjectDock.txt"
for /f "tokens=4-7 delims=[.] " %%i in ('ver') do (if %%i==Version (set v=%%j.%%k) else (set v=%%i.%%j))
::Je ne vise que Windows 10 et Windows 7 ; pour d'autres versions de Windows, il faut ajouter d'autres comparaisons à la ligne suivante.
if %v%==10.0 (Set systemVersion=Windows10) else (Set systemVersion=Windows7)
if exist "%ProgramFiles(x86)%" (Set systemBit=x64) else (Set systemBit=x32)
Set operatingSystem=%systemVersion%_%systemBit%
if %systemVersion%==Windows10 Set /p currentStart10=<"C:\Users\User_Name\Documents\Theme\Start10.txt"
if %systemVersion%==Windows10 Set /p start10=<"D:\Personnalisations\Themes\%1\Theme\Start10.txt"
Set /p currentWindowBlinds=<"C:\Users\User_Name\Documents\Theme\WindowBlinds.txt"
Set /p windowBlinds=<"D:\Personnalisations\Themes\%1\Theme\WindowBlinds.txt"
if %systemVersion%==Windows10 Set /p accountPicture=<"D:\Personnalisations\Themes\%1\AccountPictures.txt"
xcopy "D:\Personnalisations\Themes\%1\Theme" "C:\Users\User_Name\Documents\Theme" /e /i /h /k /y
xcopy "D:\Personnalisations\Themes\%1\TranscodedWallpaper" "C:\Users\User_Name\AppData\Local\Stardock" /e /i /h /k /y
xcopy "D:\Personnalisations\Themes\%1\TranscodedWallpaper" "C:\Users\User_Name\AppData\Roaming\Microsoft\Windows\Themes" /e /i /h /k /y
xcopy "D:\Personnalisations\Themes\%1\Windows DreamScene" "C:\Users\User_Name\AppData\Roaming\Microsoft\Windows DreamScene" /e /i /h /k /y
if %systemBit%==x64 xcopy "D:\Personnalisations\Themes\%1\TaskBar" "C:\Users\User_Name\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar" /e /i /h /k /y
if not "%currentObjectDock%"=="%objectDock%" xcopy "D:\Personnalisations\Themes\System\ObjectDock\%objectDock%\%operatingSystem%\ObjectDockPlus" "C:\Users\User_Name\AppData\Local\Stardock\ObjectDockPlus" /e /i /h /k /y
if %systemVersion%==Windows10 (if not "%currentStart10%"=="%start10%" xcopy "D:\Personnalisations\Themes\System\Start10\%start10%\Theme" "C:\Users\User_Name\Documents\Theme" /e /i /h /k /y) else (if not "%currentWindowBlinds%"=="%windowBlinds%" explorer "C:\Users\Public\Documents\Stardock\WindowBlinds\SkinStudio8\WBA\%windowBlinds%.wba")
explorer "C:\Users\User_Name\AppData\Local\Microsoft\Windows\Themes\%1.theme"
timeout /t 5
Set processus="SystemSettings.exe"
for /f "tokens=1" %%i in ('tasklist /NH /FI "imagename eq %processus%"') do Set ff=%%i
if /i "%ff%"==%processus% (taskkill /f /im SystemSettings.exe)
if %systemVersion%==Windows7 explorer "D:\Personnalisations\Themes\System\Close Personnalisation.vbs"
if exist "C:\Users\User_Name\AppData\Local\Microsoft\Windows\Themes\Custom.theme" attrib -r -s -h "C:\Users\User_Name\AppData\Local\Microsoft\Windows\Themes\Custom.theme"
if exist "C:\Users\User_Name\AppData\Local\Microsoft\Windows\Themes\Custom.theme" del /f /q "C:\Users\User_Name\AppData\Local\Microsoft\Windows\Themes\Custom.theme"
if %systemBit%==x64 if exist "C:\Users\Public\Documents\Stardock\Dreams\%1.DREAM" explorer "C:\Users\Public\Documents\Stardock\Dreams\%1.DREAM"
if %systemVersion%==Windows10 (start "Account Picture" "C:\Users\User_Name\AppData\Roaming\Microsoft\Windows\AccountPictures\%accountPicture%.accountpicture-ms") else (start "User Account Pictures" "D:\Personnalisations\Themes\System\User Account Pictures.lnk" %1)
if not "%currentObjectDock%"=="%objectDock%" xcopy "D:\Personnalisations\Themes\System\Logon\%objectDock%\%operatingSystem%" "C:\Users\User_Name\Documents\Theme" /e /i /h /k /y
::"%systemVersion%LogonBackgroundChanger.lnk" au lieu de "W10 Logon BG Changer.exe" et "Win7LogonBackgroundChanger.exe" pour simplifier le script et aussi pour pouvoir personnaliser l'icône, car j'utilise aussi "%systemVersion%LogonBackgroundChanger.lnk" en dehors de mes scripts.
if not "%currentObjectDock%"=="%objectDock%" start "%systemVersion% Logon Background Changer" "D:\Programmes\LogonBackgroundChanger\%systemVersion%\%systemVersion%LogonBackgroundChanger.lnk"
if not "%currentObjectDock%"=="%objectDock%" (echo Lancement de "%systemVersion% Logon Background Changer"...)
pause
taskkill /f /im explorer.exe
start explorer.exe
if %systemBit%==x64 (start "Object Dock" "C:\Program Files (x86)\Stardock\ObjectDock\ObjectDock.exe") else (start "Object Dock" "C:\Program Files\Stardock\ObjectDock\ObjectDock.exe")
exit
"Close Personnalisation.vbs" :
Set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
WshShell.SendKeys "%{F4}"
Set WshShell = Nothing
"User Account Pictures.bat" ("User Account Pictures.lnk" est exécuté en tant qu'administrateur) :
Pour info, j'ai un peu amélioré mes scripts de changement de thème -> voir 2ème message
- Edité par TheScar.fr 8 avril 2019 à 16:58:34
Windows 7 Professionnel SP1 x64
.
Script batch (.bat) inefficace
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Windows 7 Professionnel SP1 x64
.
Windows 7 Professionnel SP1 x64
.
Windows 7 Professionnel SP1 x64
.
Windows 7 Professionnel SP1 x64
.