1

デスクトップに固定したいアプリケーションがあります。デスクトップに固執するということは、誰かが windows+D またはデスクトップの表示アイコンをクリックするたびに、デスクトップがアプリケーションとともに表示されることを意味します。

ユーザーはアプリケーションをデスクトップ上に配置し、その場所をいつでも変更できますが、アプリケーションは常にデスクトップ上に残ります。

WinAPI メソッド SetParent (this .Handle, FindWindow ( "Progman " , null )); を使用して、アプリケーションの親をデスクトップに設定することにより、XP でそれを行うことができます。

Vista では、デスクトップに貼り付けることができます。デスクトップがフォーカスされるたびに、ウィンドウの周りに灰色の背景が描画されます。この背景は、ウィンドウを移動しても消えず、デスクトップに醜い四角が残ります。Windows + D をクリックすると、それらはすべて消えます。これは XP ではまったく発生しないことに注意してください。

クライアントは .NET 3.0 および WPF に基づいています。

なぜそれが起こるのか、それを解決する方法はありますか?

4

1 に答える 1

0

次のコードを使用してウィンドウハンドルを関数に渡しますが、フォームの読み込みはこれで問題が完全に解決されることを願っています

public void SetFormOnDesktop(IntPtr hwnd) {  
IntPtr hwndf = hwnd;  
IntPtr hwndParent = FindWindow("ProgMan", null);  
SetParent(hwndf, hwndParent);  
}
于 2010-05-05T06:26:23.360 に答える