質問: お世話になります。 最近タブレットPC(surfaceのような)を購入しました。 そこで、画面上部に常にファンクションキーのようなものを表示したいと思い、C#で作れないかと思いご相談させていただきました。 画面上部の数十pxに常にバーを表示し、そこにEsc,F1~F12,PrtScなどのソフトウェアキーを表示したいと思います。 そして、この領域にはほかのウインドウが入ってこないようにしたいです。その場所はあたかも画面外であるかのような動作がよいのです。 アプリケーションのメニューバーや閉じるボタンなどがっ隠れてしまうと辛いので(汗 ボタンを押したときにアクティブなウインドウにキーを送るにはSendKeysでよいでしょうか。 C#のスキルは、簡単なフォームアプリケーションが作れる程度です(過去質問のタイトルを見ていただければおおよそわかっていただけると思います) ある程度サンプルコードがあれば自分で何とかできるとは思います。 --- 質問内容をまとめると ・キーを送るにはSendKeysでよいか ・画面上のある特定の領域を自作アプリにのみ占有させるにはどうすればよいか よろしくお願いいたします。 なお、すでに存在する類似アプリケーションのご提示も、いただけますと幸いです。 OS:Windows10 Pro 開発環境:VisualStudioCommunity 開発言語:C# プログラミング経験:8年(趣味)
回答: Windows メッセージの WM_SIZE をグローバルフックして最大化時の位置・サイズを強引に置き換えてやればできそうな挙動ですが、あんまり行儀がよいとはいえませんね。 管理者権限必要ですし、DLL 作らなきゃならないし、システム全体に影響しますから危険と言えば危険ですし。