DOBON.NET DOBON.NETプログラミング掲示板過去ログ

タスクバーを表示しない方法についての質問

環境/言語:[WindowsXP,VB.NET]
分類:[.NET]

アプリケーション起動時にタスクバー自体を表示しないようにしたいのですが、どのようにすればいいのでしょうか?
■No11139に返信(pomさんの記事)
> アプリケーション起動時にタスクバー自体を表示しないようにしたいのですが、どのようにすればいいのでしょうか?

まずWindowsアプリケーションですか?
コンソール?
フォームを使われてる?
> アプリケーション起動時にタスクバー自体を表示しないようにしたいのですが、どのようにすればいいのでしょうか?

<StructLayout(LayoutKind.Sequential, Pack:=4)> Private Structure RECT
Public left As Integer
Public top As Integer
Public right As Integer
Public bottom As Integer
End Structure

<StructLayout(LayoutKind.Sequential, Pack:=4)> Private Structure AppBarData
Dim cbSize As Integer
Dim hWnd As IntPtr
Dim uCallbackMessage As Integer
Dim uEdge As Integer
Dim rc As RECT
Dim lParam As Integer
End Structure

Private Const ABM_SETSTATE As Integer = &HA
Private Const ABM_GETSTATE As Integer = &H4
Private Const ABS_AUTOHIDE As Integer = &H1
Private Const ABS_ALWAYSONTOP As Integer = &H2

Private Declare Function SHAppBarMessage Lib "shell32" _
(ByVal dwMessage As Integer, ByRef pData As AppBarData) As Integer


'--------------------------
Dim pabd As AppBarData
pabd.cbSize = Marshal.SizeOf(pabd) '36

Dim State As Integer= SHAppBarMessage(ABM_GETSTATE, pabd)
pabd.lParam = State Or ABS_AUTOHIDE Or ABS_ALWAYSONTOP
pabd.hWnd = Me.Handle
SHAppBarMessage(ABM_SETSTATE, pabd)
見るのが遅れました^^;

はいこーんさん
>まずWindowsアプリケーションですか?
はい、そうです。
>コンソール?
入出力装置のことでしょうか?^^;
>フォームを使われてる?
使用しています。
説明が足りなかったみたいですね^^;

魔界の仮面弁士さん
> pabd.cbSize = Marshal.SizeOf(pabd) '36
このMarshalの部分でエラーが出てしまうのですがどうしたらよいのでしょうか?^^;
それと、プログラム終了時に再びタスクバーの設定を戻すようにさせるにはどうしたら良いんでしょうか?
> 見るのが遅れました^^;
この返信に、先ほど気づきました。(^^;;;


>>pabd.cbSize = Marshal.SizeOf(pabd) '36
> このMarshalの部分でエラーが出てしまうのですがどうしたらよいのでしょうか?^^;
Marshalクラスは、System.Runtime.InteropServices 名前空間にありますので、
この名前空間をインポートしておくか、もしくは省略せずに、
System.Runtime.InteropServices.Marshal という名で指定してください。

名前空間のインポート方法については、
http://www.microsoft.com/japan/msdn/library/ja/vbls7/html/vblrfvbspec5_2_2.asp
を御覧下さい。もしくは、
http://www.microsoft.com/japan/msdn/library/ja/vsintro7/html/vxurfimportstab-projectpropertiespage.asp
も利用可能です。

> それと、プログラム終了時に再びタスクバーの設定を戻すようにさせるにはどうしたら良いんでしょうか?
ABM_GETSTATE で得られた設定を保持しておき、アプリ終了時に元の値で
ABM_SETSTATE しなおせばOKかと。

DOBON.NET | プログラミング道 | プログラミング掲示板