ページ 11

タスクバーの表示、非表示

Posted: 2013年2月10日(日) 19:57
by てんむすキツネ
現在、タスクバーを自動的に隠すよう設定しています。
しかし、
カーソルを画面端に寄せるたび出現するので、よく操作ミスをします。

なので、画面端にカーソルが重なった場合でも
タスクバーを出現させず、
画面端でクリックする、特定のキーを押す、などの
何らかのアクションを行うことで
出現させるようにしたいです。

どのような方法で実現できるでしょうか?
やはりこういう項目を扱えるのはWindowsAPIでしょうか?
関数などがあれば教えてください。
扱える言語はCとC++(勉強中)だけです。

Re: タスクバーの表示、非表示

Posted: 2013年2月10日(日) 20:29
by taketoshi
タスクバーのウインドウハンドルを取得すれば思いのままに操作できます。

ちなみに以下はWINAPIを用いてタスクバーのウインドウハンドルを取得した後に、タスクバーを消してしまうプログラムです。

コード:

// タスクバー.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include<windows.h>

int _tmain(int argc, _TCHAR* argv[])
{

	HWND hTask;
	//タスクバーのハンドル取得
	hTask = FindWindow((LPCSTR)"Shell_TrayWnd", NULL);

	//タスクバーのウインドウハンドル取得確認
	if(hTask == NULL){
		printf("取得失敗");
	}

	ShowWindow(hTask,SW_HIDE);//タスクバーを消す 再表示する場合はSW_SHOWを指定してください
	return 0;
}

ウインドウハンドル取得してからWINPROCのメッセージを好きなところで処理すれば
消したり表示したり、好きに操作できます。

Re: タスクバーの表示、非表示

Posted: 2013年2月10日(日) 20:37
by てんむすキツネ
マウスやタスクバーもウインドウの一つでしたね。
すっかり忘れてました!
ありがとうございます。

表示以外にも色々変えられそうですね。

とりあえず解決にしておきます。またわからないことがあれば
質問させて頂きますね。