「デスクトップの表示」を無視するには


ま〜くん  2004-07-06 17:23:19  No: 84407  IP: [192.*.*.*]

VB2年目です。

画面プロセスにおいて常に最背面かつ「デスクトップの表示」が押されても
表示されているという動作実現の為に,デスクトップに貼り付けるという
処理を行っています。
***********************************************************
  Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _
  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  Declare Function SetParent Lib "user32" _
  (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

  Dim lDesktop As Long
  lDesktop = FindWindow("Progman", vbNullString)
  If SetParent(Me.HWND, lDesktop) = 0 Then
    'SetParent失敗
  Else
    'SetParent成功
  End If
***********************************************************
ですがこの場合Explorer.exeが死んでしまうと画面が消失してしまいます。
上記方法以外で画面プロセスを常に最背面かつ「デスクトップの表示」が
押されても表示されているという動作を実現しようとしています。
いろいろネット上で調べまして、最背面はWM_WINDOWPOSCHANGINGという
ウィンドウメッセージに対応することで可能という事がわかりました。
しかし「デスクトップの表示」が押されても表示されているという動きに
ついてはネット上探しても見つかりませんでした。

どなたかご存知の方はいらっしゃるでしょうか?
宜しくお願い致します。

編集 削除