しばらく前に、VLCにはデスクトップで直接ビデオを再生する機能があることに気づきました。私が学校でそうしたとき、Windows XPでは、アイコンの下で再生されました。自宅で試してみると、Windows7ではアイコンが隠れていました。それがオペレーティングシステムなのか、それともVLCのアップデートなのかはわかりませんが、アイコンの下で再生することに興味があります。
これに気づいた後、私はある種のアニメーションデスクトップを作ることを思いついた。特別なことは何もありません。私が使用するためのいくつかの選択したビデオだけです。mciSendString
私が始めたアイデアは、(を使用して)自分のウィンドウでビデオを再生し、PrintWindow
各フレームを実行してファイルに保存し、デスクトップの壁紙をファイルとして設定することでした。それ以来、特定のコードを失いましたが、それは完全には機能していませんでした。言うまでもなく、ひどいパフォーマンスになります。
振り返ってみると、とにかくそれよりもはるかに効率的な方法があるはずだと気づきましたが、それが何であるかを完全に理解することはできません。
ビデオの親ウィンドウをに設定してみました(すべてWindows 7で)GetDesktopWindow
。これにより、すべてのウィンドウが最小化され、ビデオを再生するタスクバーに新しいウィンドウが残りますが、エアロピークボタンをクリックするか、を押すとデスクトップが表示されます。 Win+D。
次に、デスクトップのフォルダビューウィンドウの親ウィンドウで同じことを試しました。結果は、ビデオを再生する同じサイズのウィンドウでしたが、今回はデスクトップにアクセスできず、新しいウィンドウは作成されませんでした。ほとんどのデスクトップの上で再生していたようですが、再生ウィンドウのサイズが小さいため、ガジェットが上に移動し、左右の領域が表示されたままになります。
ダイナミックな壁紙のように見えるように、VLCはデスクトップ自体でそれを再生するために何をしますか?アイコン(およびWindows 7で追加した場合はガジェット)の下で再生するのは非常に難しいですか?プログラム自体はWindowsXPで使用されます。DirectShowに役立つものがあるかどうかはわかりませんが、MCIだけでなく他のWindowsAPI領域の中でも特に使用したいと思います。違いが出るのであれば、ソリューションはC++である方がいいと思います。.NETもうまく機能しますが、での作業には少し余分な時間がかかる場合があります。