【问题标题】:Detect when desktop is shown in a batch file检测桌面何时显示在批处理文件中
【发布时间】:2013-07-12 21:27:03
【问题描述】:

我的问题是,您能否检测到桌面当前是否在批处理脚本中可见(对于 Vista)?

这个想法是这样的:我正在写一个脚本作为我朋友的恶作剧。你们中的一些人可能从神秘博士那里听说过Weeping Angels。我正在尝试制作脚本,以便每次您返回桌面(例如最小化您正在查看的内容)时,墙纸都会更改为另一个 天使的形象,在你不看的时候创造出它在移动的错觉,就像在系列中一样。

我的想法是检测桌面何时不可见,每次桌面再次可见时,壁纸将循环到下一张图片。问题是,我不知道该怎么做。

除了实际的问题,任何关于效果的提示都非常感谢。

谢谢。

【问题讨论】:

  • 这个主意真棒。
  • 谢谢。但我不知道该怎么做:(

标签: command-line batch-file desktop command-prompt wallpaper


【解决方案1】:

嗯,这不是您所要求的(不确定是否可以检测到活动窗口)...但它有一些您正在寻找的部分。

基本上,它会每隔 x 不到 5 分钟将您的墙纸更改为文件夹中的墙纸之一,其中 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

【讨论】:

  • 谢谢你的回复,不过,我已经想好了如何根据时间来做(其实我现在正在我的电脑上测试,现在是凌晨 2 点 15 分,我很害怕死亡 :) ) 主要问题是:根据时间更改它太随机了,可能会跳帧,这使它不那么可怕。而且,我也使用了上面的代码。它有时有效,有时无效……不知道为什么。
【解决方案2】:

您可以使用一个名为Sikuli 的Java 库来进行屏幕模式匹配。您所做的就是按照您希望它在触发触发时出现的确切方式截取桌面,然后将单元测试设置为以 5 秒循环运行,始终检查桌面是否以某种方式出现,然后触发壁纸更改.因此,它将采用 Java/JUnit/Sikuli 和批处理脚本的组合。此外,您必须以某种方式将批处理脚本添加到他们的启动程序列表中。

【讨论】:

  • 嗯.. 首先感谢您的回复。但是,当我安排脚本启动时,我认为我无法完全控制他的 GUI。另外,据我目前的困倦程度,这不能无形地运行,这有点杀死恶作剧:)。无论如何谢谢...
  • 不,这实际上可以无形运行。当您从批处理脚本执行 java 时,只需使用 javaw.exe,它就会在后台执行。另外,我认为您必须将其实际放入他的启动程序列表中,而不是安排它。
  • 好吧,这消除了其中一个问题。但是,据我所知,如果他更改桌面上单个文件的位置,脚本也会失败,对吗?是的,我的意思是通过调度添加到启动列表中。嗜睡...
  • Sikuli 可以进行百分比模糊匹配,因此即使他们移动图标也能正常工作。
猜你喜欢
  • 2014-08-11
  • 1970-01-01
  • 2011-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多