问题标签 [desktop-background]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
167 浏览

macos - 如何通过 Apple Script 在后台激活全屏应用

我一直在 Automator 中开发一个应用程序,它将桌面背景更改为在 iTunes 中播放的当前歌曲的专辑封面。

你可以在这里下载我的第一个版本。

我发现的最烦人的问题是,当在更新的同一显示器上打开全屏应用程序时,每当歌曲更改时,背景就会在当前歌曲和上一首歌曲之间闪烁。

这是我当前的代码(从上面的 1.0 版更新):
您可能需要在代码中滚动才能看到所有代码。

我从这里得到了将艺术品保存到文件的实际代码。

除非你给它一个新的文件名来更新,否则桌面不会更新,因此我用“iTunesArt2-1”和“iTunesArt2-1”复制了这个过程。

“2-1”或“2-2”中的第一个 2 仅表示第二个桌面,因为我有两个不同的应用程序来更改每个桌面,并使用我的第二个桌面进行测试。

整个应用程序设置为循环 1000 年,使用 Automator 中的三个独立循环功能(720 分钟、730 次和 1000 次)。

首次尝试调试此问题时,该过程被复制为四个单独的脚本,一个用于保存图像,然后设置为背景,另外两个脚本用于使用新文件名重复该过程。

这是我的调试示例:

  1. 我从“.iTunesArt##.jpg”中删除了开放时间段,以便可以在桌面上看到文件。
  2. 我播放一首酷玩歌曲并在 Automator 中运行应用程序来设置背景。
  3. “iTunesArt2-1.jpg”和“iTunesArt2-2.jpg”以正确的专辑封面显示在我的桌面上。
  4. 我停止了应用程序,并播放了一首 Paramore 歌曲。
  5. 我运行应用程序的第一个脚本(保存专辑封面)。
  6. “iTunesArt2-1.jpg”更新为 Paramore 作品。
  7. 我运行应用程序的第二个脚本(设置背景图像)。
    请注意,此脚本应将背景设置为 Paramore 图像。
  8. 背景仍然设置为 Coldplay 图像。

起初我认为这只是因为背景图像已经设置为“iTunesArt2-1.jpg”,因此系统不会再次尝试更新它,不知道文件中的数据已被更改。

所以我运行下一个脚本,它应该强制背景更新:

  1. 我在应用程序中运行第三个脚本。
  2. “iTunesArt2-2.jpg”更新为 Paramore 作品。
  3. 我在应用程序中运行第四个脚本。
  4. 桌面背景更新为 Paramore 图稿。

因此,我们可以确认脚本 3 和 4 工作正常。
根据代码,当应用程序循环回到脚本 1 和 2 时,桌面背景应保持为 Paramore 艺术品。
但...

  1. 我在应用程序中运行第一个脚本。
  2. “iTunesArt2-1.jpg”仍然是 Paramore 的作品(应该如此)。
  3. 我在应用程序中运行第二个脚本。
    此脚本应将桌面背景从“iTunesArt2-2.jpg”(Paramore)更新为“iTunesArt2-1.jpg”(Paramore)。
  4. 桌面背景变为酷玩艺术作品。

现在这完全没有意义。

每次我遍历脚本时都会发生这种情况。
脚本 4 会将桌面更改为 Paramore,脚本 2 会将其更改回 Coldplay。

请记住,仅当在更新的同一显示器上打开全屏应用程序时才会发生此问题。IE。在我的主显示器上打开的全屏应用程序无关紧要。

我发现有时滑到全屏应用程序并“激活”它会停止闪烁,并且背景将被正确设置。

我的代码肯定没有任何“错误”吗?如果没有,我需要一种方法来解决这个问题。

具体来说,有没有办法在后台“激活”每个全屏应用程序而不移动到这些空间?

我会喜欢任何希望它拥有这个程序的人,但它需要能够在所有情况下运行。

任何帮助将不胜感激。

0 投票
2 回答
411 浏览

macos - 无法通过 AppleScript 删除目录

我正在编写一个程序,它不断地将桌面背景设置为在 iTunes 中播放的当前歌曲的专辑封面,为此,我将艺术作品写入具有随机 ID 号的文件。这意味着桌面每次都会更改为不同的文件。

当然,我希望能够在使用完所有这些文件后删除它们,因此我尝试使用do shell script "rm ~rf " & folderName删除包含图像的整个文件夹。

但是,每次我运行我的脚本甚至在终端中输入完整目录时,我都会收到错误消息:

“rm:〜rf:没有这样的文件或目录rm:Macintosh:没有这样的文件或目录rm:HD:Users:BenClose:Desktop:iTunesWallpaper:没有这样的文件或目录”

下面是我整个程序的代码,我不知道哪里出了问题,所以任何帮助都将不胜感激,因为我希望任何希望它能够使用这个程序的人。

screenNum指正在更改的桌面。

hiddenFile指创建的文件是否会被隐藏。"."if true and ""if false(添加到文件名开头的句点将使其隐藏)。

基本上,正在发生的事情是桌面背景被设置为专辑封面 99 次,之后我希望能够删除所有 99 个文件并让该过程重新开始。

该错误发生在脚本的最后,它试图删除图像文件夹。

0 投票
0 回答
118 浏览

vb.net - 在VB中更改桌面背景的图片位置

我编写了这段代码来使用Windows API 中的函数SystemParametersInfouser32.dll更改桌面背景:

我需要知道我是否可以更改该桌面背景的图片位置 - 更改背景时的相同属性Control Panel- 如下所示:


在此处输入图像描述

更新: 我在这里找到了正确的解决方案。

0 投票
0 回答
63 浏览

python - 在 python 中使用 cytpes 模块设置 MS 桌面背景太慢,无法像视频一样使用。

tl;dr 使用 python 设置桌面背景的常用方法对于动画目的来说太慢了。我想知道是否有任何选项可以在不破坏计算机性能的情况下将背景设置为 O(5fps)。

~~~~

大家好!

前几天我对自己的这个想法感到兴奋:我想让我的桌面背景循环显示从 NASA 网站下载的最新太阳图像(来自 SDO)。它奏效了!我有一个在我的电脑后台运行的代码,每三十秒将我的桌面更新为来自互联网的最新图像(它还循环通过波长。非常有趣!。)真的很酷!每天看着它,看看太阳如何变化是很酷的。所以这是成功的。

但是太阳也有很多短期的动态,我也希望能够观察到!所以,我想,解决方案很简单!只需保留您下载的最后 30 张图像,然后快速为它们服务!循环很简单(提炼到基本组件):

这确实有效!它看起来很不错,我什至会在它完全停止工作之前满足它似乎有能力的 4 fps。问题是每次调用 ctypes 函数都会导致整个系统{freeze?. 口吃?,慢点?}。它完全扼杀了这个想法,因为我无法让这段代码在后台运行。它使我的鼠标在我的屏幕上结结巴巴。

但是我看到存在可以使桌面背景变成电影的程序,所以我希望有其他方法可以在 python 中自己完成。我想我只是不明白为什么这个功能会对系统造成如此大的消耗。但是在这里搜索堆栈溢出和在谷歌上搜索的替代方法并没有取得成果。

我在戴尔 Windows 10 笔记本电脑上,以 Anaconda 形式运行 python 3.6.5。

0 投票
0 回答
194 浏览

vbscript - 我可以使用 VBScript 更改桌面背景,但它只会在重新启动后更新参数

我一直在尝试使用 VBScript 更改我的桌面背景。它可以工作,但是只有在我重新启动后才会生效。有没有办法在不重新启动的情况下立即更新参数?

我尝试重新启动资源管理器以查看是否会更新参数,但不幸的是它没有做任何事情。

我希望桌面背景图像在我运行脚本时更新。这就是它应该做的,但它只在我重新启动时更新参数和图像。我会很感激我能得到的任何帮助。

0 投票
1 回答
52 浏览

python - 更改桌面背景和播放 .mp3 文件不起作用

当我运行程序时,我听不到 .mp3 并且桌面背景变黑而不是更改为我选择的图像(COMMUNISM.jpg)

0 投票
0 回答
127 浏览

terminal - 如果我想在 Big Sur 上禁用 SIP,我可以 sudo 从 /System/Library/Desktop Pictures 中删除一些桌面背景图像怎么办?

问题:我对我的桌面图片非常挑剔,我喜欢让它们在每次我的 Mac 从睡眠中醒来时滚动浏览,但是我想从这个旋转中删除大约 12 张图像。

故障排除:我尝试让 sudo 访问它们所在的目录,以便我可以删除文件,但这没有用。经过进一步 研究, Apple 的 SIP(​​系统完整性保护)技术似乎禁止我对我的 /System 文件夹进行 root 访问。

我更深入地研究了这个兔子洞,看起来Apple 开发者社区在这里有禁用和启用 SIP 的说明。它看起来非常简单 - 以恢复模式启动 > 启动终端 > 运行命令csrutil disable> 重新启动计算机

我在我想要:

  1. 使用禁用 SIPcsrutil disable
  2. 重新启动我的电脑,sudo进入我的 /System.../Desktop Picturesrm filename01.heic filename02.heic filename03.heic
  3. csrutil enable使用命令从恢复模式重新启用 SIP
  4. 重新启动,走上我的快乐之路

想法?有没有人做过类似的事情?我的意思是,删除一些无关紧要的小文件有多大意义……?

我在 2016 MBP 上运行 Big Sur 11.2.3

谢谢阅读!