0

tl;dr python を使用して ctypes を使用してデスクトップの背景を設定する通常の方法は、アニメーションの目的には遅すぎます。コンピューターのパフォーマンスを損なうことなく、背景を O(5fps) に設定するオプションがあるかどうか疑問に思っています。

~~~~

皆さん、こんにちは!

先日、NASA の Web サイトからダウンロードした最新の太陽の画像 (SDO から) をデスクトップの背景に循環させたいというアイデアに興奮しました。そしてそれは働いた!コンピューターのバックグラウンドで実行されるコードがあり、デスクトップを 30 秒ごとにインターネットからの最新の画像に更新します (波長も循環します。とても楽しいです!) そして、それは本当にクールです! 毎日眺めて、太陽の移り変わりをみると、涼しげです。それで成功です。

しかし、太陽にも多くの短期的なダイナミクスがあり、私もそれを観察できるようになりたいです! だから、解決策は簡単だと思いました!ダウンロードした最新の 30 枚の画像を保持して、それらを急速に提供するだけです! ループは非常に簡単です (基本コンポーネントに蒸留されます)。

import os
import ctypes
import time

#Get the filepaths of all pictures in a folder
folderPath = fromGod()
items = os.listdir(folderPath)  
listOfFiles = [folderPath + item for item in items]

frameTime = 0.25 #second
runFor = 30 #seconds

#Cycle through the pictures 
startTime = time.time()
while time.time() - startTime < runFor:
    for file in listOfFiles:
        ctypes.windll.user32.SystemParametersInfoW(20, 0, file , 0)
        time.sleep(frameTime)

これは実際に機能します!見た目はかなり良く、まったく機能しなくなる前に、可能と思われる4 fpsで解決することさえできます. 問題は、ctypes 関数を呼び出すたびに、システム全体が {freeze? されることです。吃音?、減速?}. このコードをバックグラウンドで実行させる方法がないため、アイデアを完全に殺してしまいます。画面上でマウスがカクカクします。

しかし、デスクトップの背景を映画にすることができるプログラムが存在することがわかったので、Pythonで自分でこれを行うことができる他の方法があることを願っています. なぜこの機能がシステムにそのような負荷をかける必要があるのか​​ 理解できないと思います。しかし、ここでスタック オーバーフローと Google を検索しても、これを行う別の方法に関しては実りがありませんでした。

私はDell Windows 10ラップトップを使用しており、Python 3.6.5をAnaconda形式で実行しています。

4

0 に答える 0