2019年07月07日

RegisterHotkey()のエラー時の対処を入れないとなぁ

先日、RegisterHotkey()の大昔の仕様変更に緊急対応したわけなのですが、当たり前なことにRegisterHotkey()はエラーの場合には、きちんとエラーであることを示す戻り値を返すようになっています。

例えば、他のアプリケーションで、すでに当該ホットキーが使われている場合など。

しかし残念ながら、現時点では、「マウスのお供」「NumLockLock」「コピペテキスト修飾除去」では、エラーがあっても無視して次処理へ突き進むようになっています。
うーむ、今後、何かしらの対処はしたいところ。ワーニングメッセージを出すとか。

とはいえ、例えば「マウスのお供」がスタートアップで起動する設定になっていたとして、複数のHotkey登録エラーが起きた場合、OS起動と共に常駐開始するシチュエーションで、エラーメッセージを連発表示するのも、なんだかとってもウザそうな気がする。

たぶん、後からまとめて報告するような仕様になっているのがよさそう。

同じように、設定ダイアログからのホットキー割り当てでエラーが起きた場合、中途半端に処理を止めてしまうと、おかしなことになる。
ホットキーの設定処理は、設定ダイアログに並んでいる順番に、

1. 設定ダイアログを開くホットキー
2. メモ編集を開くホットキー
3. 時計等の表示ON/OFFの切替のホットキー
4. 時計等の表示ONのホットキー
  :
  :
7. クリップボード文字列から就職を除去するホットキー
8. 残時間表示のON/OFFの切替のホットキー


の順で設定されるわけだけど、3番目でエラーが起きる場合、2まではホットキー登録されるけど、4以降はホットキー登録されないという中途半端になる。かといって、ロールバック処理を構築するのも面倒くさい。

どうするのがスマートかは、ちょっとゆっくり考えることにしたいところ。


例えば、「コピペテキスト修飾除去」で利用しているOS機能「バルーン表示」(Windows 10の場合は「トースト通知」)を使って、警告表示を行いつつも処理を続行し、ユーザーは任意で無視することもできるようにするとか。
(エラーではなくワーニング扱いなので、ユーザーに状況を伝えつつ、処理を続行する)

こんなイメージ。
201907_tosuto1_image.jpg

201907_tosuto2_image.jpg

トースト表示の場合、表示できる行数は限られていますので、2つ以上のホットキー重複があった場合は全てのメッセージが読めません。が、読まずとも自体は把握できるとは思いますので、これでもよいかなぁと思います。

んでは、バルーン表示/トースト表示のためのプログラムを「マウスのお供」「NumLockLock」に移植しておくかなぁ。

posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | フリーソフト
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/186233558
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック