デスクトップの壁紙にウィジェットをペイントするデスクトップのアイコンの下にプログラムを書きました。 しかし、私は奇妙なバグを明らかにする - 私のプログラムは、他のコンピュータでは動作しませんでした - 彼らは 起動後にウィジェットのない同じデスクトップを表示します。デスクトップ上のアイコンの下に描画
だから、誰もがこの領域のexpirience、いくつかの知識を持っていますか?私を助けてください! :)
私は多くのテストプログラムを書いていますが、その試行ではむしろメソッドでデスクトップ上に何かを描画しますが、 テスト私の友人のコンピュータであまりにも何も表示されません)
描画方法:。私は自分のウィンドウプロシージャをインストールし、デスクトップ・ウィンドウ(progman->チャイルド>子)) を見つけ、フックを作成して、DLLを、書いた
デスクトップ。私はこのコードを取得し、高速な描画のためのクリッピング領域を設定する際にスキップ//case WM_ERASEBKGND:
HDC hdc = (HDC)wparam;
PaintDesktop(hdc);
WidgetPaint(hdc);
return 1;
: は、ウィンドウプロシージャでは、私はWM_ERASEBKGNDをフック。 (クリッピングとクリッピングなしですべての組み合わせを試しました)
またテストでも、同じ結果を持つWM_PAINTメッセージにウィジェットをペイントしようとしています - すべてはすでに私の作品ですが、私の友人ではありません。
更新:私はそれを解決しました! :)
あなたのコードはWindows XPで動作し、Windows VistaまたはWindows 7では動作しませんか? – MusiGenesis
はい、私のコードはXPとWindows Vistaで動作します。 しかし、Windows 7では正常に動作しません。Windows 7では、 はその保護メカニズムと思われます。 (私はexplorer.exeのプロセスでロードされたDLLをリストすることもできません) – vsvasya
修正プログラムは何ですか? – Brian