Hatena::ブログ(Diary)

お前の血は何色だ!! 4 このページをアンテナに追加 RSSフィード Twitter

2011-07-17

マルチディスプレイユーティリティ

デュアルディスプレイ、マルチディスプレイ(マルチモニター)はふつーの世の中になりました。

ただ、windowsでマルチディスプレイをするときに、ちょっと困ったことがあったので解決するツールを作ってみました。

ツール

http://rtilabs.net/files/2011_07_18/MultiMonitorUtil.zip

ソース

https://github.com/rti7743/MultiMonitorUtil

環境: VS2010 MFC + C++0x (autoがべんりすぐる)


何を解決させたかったの?

Win + D ですべてのマルチディスプレイのウィンドウが最小化してしまうんです。

Win + D はディスクトップを表示するコマンドです。

ひらきすぎたウィンドウを無視して、ディスクトップを操作したい時に便利です。

しかも、もう一度 Win + D を押すともとに戻ります。


ただ、マルチディスプレイ環境でやると、すべてのウィンドウが最小化されてしまうんですね。

これだと、片方の画面で動画を再生させながら、もう片方の画面でちょっとデスクトップみたいなと思っても、動画も最小化されてしまうという大変残念な結果になってしまいます。

指定したモニターだけで Win + D やりたい。

ここで Win + D を押すと・・・

f:id:rti7743:20110718004634p:image

↓となりのモニタまで最小化してしまう!!!

f:id:rti7743:20110718004635p:image

↓普通こうだろうJK

f:id:rti7743:20110718004636p:image


せっかく動画を再生しながらノリノリで仕事していたのに、 Win + D を押すたびにイライラする。

そして、この問題に対応するソフトウェアがほぼない状態でした。もしかしたらあるのかもしれないけどね。


いろいろ探してあったのが、現在のモニターだけを最小化してくれるソフトでした。

しかし、これではダメなのです。


最小化するボタンともとに戻すボタンが「別に」割り当てられるのです。

Win + D は押せば有効になり、もう一度 同じ Win +D を押すともとに戻ります。

しかし、他のソフトは、最小化するボタンと戻すボタンは別です。

なんと、2つのもボタン操作を覚えろというのです。

普通はこんなふうにWin + D でぐるぐる回るべき

f:id:rti7743:20110718004953p:image

↓             ↑

Win + D         ↑Win +D ぐるぐる

↓             ↑

f:id:rti7743:20110718004952p:image


キーが違うと覚えることが増える

f:id:rti7743:20110718004953p:image

↓             ↑

Win + D         ↑Win +Eとか

↓             ↑

f:id:rti7743:20110718004952p:image


これは信じられない苦痛です。

覚える量が1つから、2つになり2倍になってしまいました。

こんなの覚えることができません。


Win + D のように、押したら有効、もう一度押したら解除にぐらいの「ゆとり」設定にしてくれないと、覚えることが増えすぎてしんでしまいます。


そこで死なないように、いろいろなツールを探したのですが、Win + D をいい感じにマルチディスプレイにしてくれるツールをみつけることができませんでした。

ないものは、仕方ないし、それなら自分で作るしか無いと思って、とりあえず作ってみました。

久しぶりにwindowsネイティブなソフトを作ったので、とりあえず動作するところまで行ったので公開したいと思います。


説明

f:id:rti7743:20110718004954p:image

立ち上げると、タスクバーに常駐します。

タスクバーから設定を開けます。

f:id:rti7743:20110718005635p:image

設定でキーを割り当てられます。

ディフォルトでは、 Atl + D で 、そのモニターだけ Win + D の効果がでるように作ってあります。

本当は、 Win + D にしたかったんですが、 Windowsがまっさきにフックしやがってこっちにデータが流れてこないので、Alt + D にしました。

好きなようにキー割り当てしてください。

キー割り当てをしたくないものは、 設定画面で DELキーでキー割り当てを解除できます。



機能説明

Alt + Dを押すと、現在マウスカーソルがいるモニター(ディスプレイ)のウインドウを最小化します。

もう一度、 Alt + D を押すともとに戻ります。

f:id:rti7743:20110718004634p:image

↓ Alt + D

f:id:rti7743:20110718004636p:image


Alt + Dはモニターごとに有効か無効かを覚えています。

ここら辺は使ってみるとわかると思います。


機能説明2

ついでに、桃鉄サミットカードみたいな機能をつけました。

Alt + S を押すと、 現在のモニターに全ウインドウが集結します。

f:id:rti7743:20110718005634p:image

↓ Alt + S

f:id:rti7743:20110718005633p:image

もう一度押すと、元のモニターに戻ります。



ロマサガ2風に、集合〜散れっといってみいいです。意味はありません。

その他

MFC は結構大変だった。

MFC をスタティックリンクすると、リリースモードでも1M超えるとかどんだけでかいんだよ。

やっぱり、データの保存がめんどくさい。

C++0x の auto は偉大だ。

EnumWindows 系の命令に C++0x の lambda を使うと現在だとコンパイルエラーになる。

仕様上ではキャプチャが発生しない lambda は関数ポインタに変換できる。

しかし、それでも、 __stdcall を付けられないのでやっぱりエラーになる。

変更するには、コンパイルオプションを変更するしかないらしい。

C++ の人達はこの仕様で本当にええのんか。


まだいろいろバグがあるからそのうち直す。

参考にしたサイト

http://note.phyllo.net/?eid=806766

http://bucci.bp7.org/archives/733

その他多数...

SS 2013/02/06 16:35 まさに探してたツールです!使わせてもらいます!

o_po_p 2015/06/16 14:51 Win+DはAutoHotKeyで拾えるので、こちらのソフトは常駐ではなくコマンドラインから機能を呼び出せれば有難いです。

kk 2016/03/17 10:49 ツールのリンクが切れてしまっているようです
是非使いたいので、再アップをお願いします

rti7743rti7743 2016/03/18 11:09 どぞ
http://rtilabs.rti-giken.jp/files/2011_07_18/MultiMonitorUtil.zip

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/rti7743/20110717/1310918408