2009-11-05 3 views
10

デスクトップの壁紙を置き換えるように、アイコンの背後にあるデスクトップの上に描画する必要があるアプリケーションを作成しようとしています。私はこれにいくつかの解決策を見つけましたが、それらのほとんどはうまく動作しませんでした(ちらつきがたくさんあります)。 1つの解決策seems to be what I'm looking forが、私は本当にそれを取得しません。私は主に、高レベルのグラフィックスライブラリまたはWindowsフォームだけを使用してC#アプリケーションを実行しましたが、Windows以外のプラットフォームではC++を使用していました。壁紙の置き換えとしてデスクトップの背景に描画する(Windows/C#)

誰かが私のためにそれを「翻訳」するか、私に別の解決策を提供できれば、それは非常に感謝しています!

答えて

7

私は最高の(のみ?)選択肢私が望んでいた解決策を見つけていないが、ここにいるん:

  • を "SysListView32" ウィンドウに描画(PROGMAN - > SHELLDLL_DefView - > SysListView32)。これは、デスクトップアイコンの背後に描画されますが、アニメーションが使用されているときは点滅します。方法:Link(.NETでinteropを使用する必要があります)。

  • DirectDrawオーバーレイを使用します。デスクトップの色をあいまいな色に設定すると、その色のすべてがオーバーレイのものに置き換えられます。これは私の質問とVLCの壁紙モードの例で使用されています。ただし、これはAeroと互換性がありません。方法:Link(.NETでManaged DirectXを使用できますか?)

+0

これに関するすべてのニュース? – Ampere

+0

悲しいことに、私が知っている限り。私は何をやろうとしていることをあきらめていますが、実際にはそうではないようです。 – nardi

+2

これは非常に遅いですが、私はこの[リンク](http://www.codeproject.com/Articles/856020/Draw-Behind-Desktop-Icons-in-Windows)でこれを行うことができました。 – Clark

0

はい、interopで、thisスレッドを参照してください。

+0

これはすべての上に描画されます。私はすべて(デスクトップの壁紙を除く)の背後に描画するために探しています。 – nardi

1

あなたはVLCメディアプレーヤーコードでインスピレーションを得ることができます。あなたが探しているものはwallpaper modeです。

0

が通過中にこの質問を見て、私は部分的に問題を解決しなかった(しかしない方法で、私は、任意の有用なコードを与えることができます)あなたが望むアプリケーション持っていないかもしれないが、いくつかのクールなゲームを作るために:

    を 正常に戻って
  • 設定デスクトップの背景と黒のデスクトップ
  • 設定デスクトップの背景のスクリーンショットを取り、白デスクトップ
  • 設定デスクトップの背景のスクリーンショットを取り、デスクトップ
  • のスクリーンショットを撮ります
  • 白黒バージョンを組み合わせてマスクを作成し、最初のスクリーンショットを透過性の異なるオーバーレイ設定ピクセル値として組み合わせます。フォーム上今

ために、次のように描く:

  1. は、フォームのもの
  2. はあなたが

これは、作成したデスクトップオーバーレイを描き描き最初のスクリーンショット

  • を描きます私はフルスクリーンのフォームのために何をしたのですか?基本的にデスクトップを再作成しましたが、クールなゲームを含めて何かを行う能力があります。抽選のスピードとパフォーマンスはどんなアプリケーションでも満足できるものですが、デスクトップのインタラクティブ性は問題です:(私はバックグラウンドを白に設定し、すべての白い背景を透明にした以外は原則を使ってタンクゲームの写真を撮っています!

    My Tanks Game