[分享]一個自動隨機切換鎖定屏幕畫面的方法

下面是自動隨機切換鎖定屏幕畫面的批處理腳本.

因爲時間比較晚了, 關於任務計劃部分明天再貼出.

@echo off

set sid=%1
if not defined sid (goto exit)
for /f "tokens=*" %%f in ('echo %sid%') do set sid=%%~f
echo %sid% | find "S-1-5-21" > nul
if %errorlevel% neq 0 (goto exit)

set imagesPath=%2
if not defined imagesPath (goto exit)
if not exist %imagesPath% (goto exit)
pushd %cd%
cd /d "%imagesPath%"
set /a err=%errorlevel%
popd.
if %err% neq 0 (goto exit)
for /f "tokens=*" %%f in ('echo %imagesPath%') do set imagesPath=%%~f

set /a files=0
for /f "tokens=*" %%n in ('dir "%imagesPath%\*.jpg" /a-d/b/s ^| find /c /v ""') do set /a files=%%n

set /a index=0
set /a index=%random%%%files%+1
set /a cnt=0

setlocal enabledelayedexpansion

set c=
for /f "tokens=3" %%f in ('reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SystemProtectedUserData\%sid%\AnyoneRead\LockScreen /ve') do (
 set str=%%f
 set c=!str:~0,1!
)
if not defined c (goto exit)

for /f "tokens=*" %%f in ('dir "!imagesPath!\*.jpg" /a-d/b/s') do (
 set image=%%f
 set /a cnt=!cnt!+1
 if !cnt! equ !index! (goto break)
)

:break
for /f "skip=2 tokens=1" %%a in ('wmic desktopmonitor get screenwidth') do set /a width=%%a
for /f "skip=2 tokens=1" %%a in ('wmic desktopmonitor get screenheight') do set /a height=%%a
if !height! lss 999 (set height=0!height!)

del C:\ProgramData\Microsoft\Windows\SystemData\!sid!\\ReadOnly\LockScreen_!c!\LockScreen___!width!_!height!.jpg /a/f/q
mklink "C:\ProgramData\Microsoft\Windows\SystemData\!sid!\ReadOnly\LockScreen_!c!\LockScreen___!width!_!height!.jpg" "!image!"

:exit
endlocal

答案
答案

您好,

 

感谢您分享随机切换锁定屏幕背景的方法!

 

如果方便的话,希望您能分享更多解决问题方法!

此回复是否有帮助?

抱歉,这没有帮助。

太棒了!感谢你的反馈。

你对此回复的满意度如何?

感谢你的反馈,它能帮助我们改进网站。

你对此回复的满意度如何?

感谢你的反馈。

 
 

问题信息


最近更新 2020/01/20 296 次浏览 适用于: