SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

タスクバーとVB.NET

VB.NETプログラムでタスクバーを自由に設定しよう

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本稿では、VB.NETで、「時計を隠す」「タスクバーを他のウィンドウの手前に表示する 」「タスクバーのプロパティを表示する」といった、タスクバーのさまざまな設定を操作する方法を解説していきます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 数日前、ある学生に尋ねられました。VB.NETプログラムからタスクバーを操作することは可能かどうかと。そこで私はその学生のためにこのサンプルアプリケーションを作成することにしました。この記事では、タスクバーの大部分の設定を操作できるアプリケーションの作成方法を示します。ここで扱う機能は次のとおりです。

  • 時計を隠す
  • タスクバーを固定する
  • 同類のタスクバーボタンをグループ化する
  • タスクバーの内容(アクティブなウィンドウのボタン)を隠す
  • アクティブでないトレイアイコンを自動的に隠す
  • タスクバーを自動的に隠す
  • タスクバーを他のウィンドウの手前に表示する
  • スタートボタンを無効にする
  • スタートボタンのテキストを変更する
  • タスクバーのプロパティを表示する
  • デスクトップ機能を表示する

デザイン

 今回は図1のようなフォームをデザインしました。ボタンの名前は自分にとって分かりやすいものに変更するとよいでしょう。

図1 デザイン
図1 デザイン

コーディング

 コードウィンドウの冒頭に次のImportを追加してください。この記事全体でいくつかのレジストリ機能を使用するからです。

Imports Microsoft.win32 'Registry Functions
Imports System.Runtime.InteropServices 'API functions

 曖昧さを避けるため、私はすべてのAPIとそれらに関連する定数から始めることにしました。下記のコードをコードウィンドウに追加してください。

'Find External Window
Private Declare Function FindWindow Lib "user32.dll" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Int32

'Find Child Window Of External Window
Private Declare Function FindWindowEx Lib "user32.dll" Alias _
"FindWindowExA" (ByVal hWnd1 As Int32, _
ByVal hWnd2 As Int32, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Int32

'Show A Window
Private Declare Function ShowWindow Lib "user32.dll" _
(ByVal hwnd As Int32, _
ByVal nCmdShow As Int32) As Int32

'Post Message To Window
Private Declare Function PostMessage Lib "user32.dll" Alias _
"PostMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, _
ByVal wParam As Int32, _
ByVal lParam As Int32) As Int32

'Enable A Window
Private Declare Function EnableWindow Lib "user32.dll" _
(ByVal hwnd As Int32, ByVal fEnable As Int32) As Int32

'SendMessage lParam = String
Private Declare Function SendMessageSTRING Lib _
"user32.dll" Alias "SendMessageA" _
(ByVal hwnd As Int32, _
ByVal wMsg As Int32, _
ByVal wParam As Int32, _
ByVal lParam As String) As Int32

'Send Message & Wait
Declare Auto Function SendMessageTimeout Lib "User32" ( _
ByVal hWnd As Integer, _
ByVal Msg As UInt32, _
ByVal wParam As Integer, _
ByVal lParam As Integer, _
ByVal fuFlags As UInt32, _
ByVal uTimeout As UInt32, _
ByRef lpdwResult As IntPtr _
) As Long

'Normal SendMessage
Private Declare Function SendMessage Lib "user32.dll" _
Alias "SendMessageA" _
(ByVal hwnd As Int32, _
ByVal wMsg As Int32, _
ByVal wParam As Int32, _
ByVal lParam As Int32) As Int32

'Get Handle To Desktop
Private Declare Function GetDesktopWindow Lib "user32" () As IntPtr

Private Const WM_WININICHANGE = &H1A 'INI File Update
Private Const HWND_BROADCAST = &HFFFF& 'Send To All
Private Const WM_SETTINGCHANGE = &H1A 'Setting Change
Private Const SMTO_ABORTIFHUNG = &H2 'Stop If Hang
Private Const WM_COMMAND As Int32 = &H111 'Send Command
Private Const WM_USER As Int32 = &H400 'User
Private Const WM_SETTEXT = &HC 'Change Text
Private Const WM_GETTEXT = &HD 'Get Text

 コメントを読めば、それぞれのAPIの機能がどのようなものか概ね分かるはずです。APIを初めてみる方には、この記事を読むようお勧めします。もちろん、本稿でも詳しい説明を行います。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
時計を隠す/表示する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Hannes du Preez(Hannes du Preez)

プログラミングトレーナー。プログラミングを最大の趣味とする。Visual Basic 5からプログラミングを始め、Visual Basic 6.0、Visual C++ 6.0、Visual Basic .NETでアプリケーションを開発。プログラミングの知識はすべて独学によるもので、CodeGuru...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3473 2009/02/10 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング