Command line 在批处理文件中显示桌面时检测
我的问题是,您能否检测到桌面当前是否在批处理脚本中可见(对于Vista) 想法是这样的:我正在为我的朋友写一个剧本作为恶作剧。你们中的一些人可能从Who医生那里听说过。我试图使脚本,使您每次回到桌面(如尽量减少您正在看的东西),墙纸改变到另一个 天使的形象,创造一种错觉,当你不看的时候,它在移动,就像在系列中一样 我的想法是检测桌面何时不可见,每次它再次可见时,壁纸将循环到下一张图像。问题是,我不知道该怎么做 除了实际的问题,任何关于效果的提示都是值得赞赏的Command line 在批处理文件中显示桌面时检测,command-line,batch-file,desktop,command-prompt,wallpaper,Command Line,Batch File,Desktop,Command Prompt,Wallpaper,我的问题是,您能否检测到桌面当前是否在批处理脚本中可见(对于Vista) 想法是这样的:我正在为我的朋友写一个剧本作为恶作剧。你们中的一些人可能从Who医生那里听说过。我试图使脚本,使您每次回到桌面(如尽量减少您正在看的东西),墙纸改变到另一个 天使的形象,创造一种错觉,当你不看的时候,它在移动,就像在系列中一样 我的想法是检测桌面何时不可见,每次它再次可见时,壁纸将循环到下一张图像。问题是,我不知道该怎么做 除了实际的问题,任何关于效果的提示都是值得赞赏的 谢谢。好吧,这不是你想要的(不确定是
谢谢。好吧,这不是你想要的(不确定是否可以检测到活动窗口)。。。但它有一些你一直在寻找的东西 基本上,它会在不到5分钟的时间内每x一次将您的壁纸更改为文件夹中的几个壁纸之一,其中x是一个随机数。如果您对如何更改它/建议/问题有任何想法,请告诉我
@echo off
rem random number of milliseconds (0-5 minutes)
SET /A time=%RANDOM% * (300000 / 32768)
echo waiting %time% ms
PING 1.1.1.1 -n 1 -w %TIME% >NUL
echo done
rem index between 1 and 5
SET /A WALL_INDEX = %random% %% 5 + 1
rem create a folder with many wallpapers in it, and name them 1.png, 2.png, 3.png ... x.png
set WALL="C:\%WALL_INDEX%.png"
rem this is how you change the wallpaper, i stole this from some random site, but I tested it and it seemed to work... usually.
@echo off
reg add "hkcu\control panel\desktop" /v wallpaper /t REG_SZ /d "" /f
rem sets the wallpaper to the path in %WALL%
reg add "hkcu\control panel\desktop" /v wallpaper /t REG_SZ /d %WALL% /f
reg delete "hkcu\Software\Microsoft\Internet Explorer\Desktop\General" /v WallpaperStyle /f
reg add "hkcu\control panel\desktop" /v WallpaperStyle /t REG_SZ /d 0 /f
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
您可以使用一个名为的Java库来实现这一点,该库进行屏幕模式匹配。你所要做的就是在桌面触发时按你希望的方式截屏桌面,然后将单元测试设置为5秒循环运行,始终检查桌面是否以某种方式显示,然后触发墙纸更改。因此,它将混合使用Java/JUnit/Sikuli和批处理脚本。此外,您还必须以某种方式将批处理脚本放入他们的启动程序列表中。这是一个非常棒的主意。谢谢。但是我不知道该怎么做:(谢谢你的回复,但是,我已经想出了基于时间的方法(事实上,我目前正在我的电脑上测试它,现在是凌晨2:15,我吓死了:))主要问题是:基于时间改变它太随机了,可能会跳帧,这使得它不那么可怕。。而且,我也使用了上面的代码。有时有效,有时无效。。。不知道为什么。嗯。。首先感谢您的回复。但是,我认为当我计划启动脚本时,我无法完全控制他的GUI。而且,就我目前的困倦程度所知,这不能在无形中运行,这有点扼杀了恶作剧:)。不管怎样,谢谢……不,这实际上可以在无形中运行。当您从批处理脚本执行java时,只需使用javaw.exe,它就会在后台执行。另外,我认为你应该把它放在他的创业计划列表中,而不是安排它。好吧,这就消除了一个问题。但是,就我所知,如果他改变桌面上一个文件的位置,脚本就会失败,对吗?是的,我的意思是通过计划加入到启动列表中。睡意…Sikuli可以进行百分比模糊匹配,所以即使他们移动图标也可以。