2019年07月07日

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

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

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

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

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

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

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

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


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

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

続きを読む
posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | フリーソフト

2019年07月06日

久々にHUBを買ってきた話。今のHUBは安いものでもだいぶ進化しているらしい。

新PCを購入し、旧PCからちまちまとデータ移行を行い、だいたい一通り終わりました。

とはいえ、移行が漏れているデータがあるかもしれません。旧PCを再びちょっとだけ使いたくなる時があるかもしれません。参考に見たくなることがあるかもしれません。

というわけで、旧PCは、引続き手の届くところに置いておき、いざというときはヘッドレス運用で利用できるようにしておきたいと思いました。

すなわち、マウス・キーボード・モニタは繋がず、電源とLAN接続のみを行い、必要ならリモートデスクトップ接続で繋ぎます。

たしか、旧PCにはWi-Fiアダプタが内蔵されていたはず。
とりあえず、データ移行用に繋いでいたLANケーブルを抜き、ひとまず「手の届く」場所で電源だけ繋ぎ、無線LANで接続しました。

が、なんだかリモートデスクトップ接続が激重。
動きは遅いし、たびたび切断される。
どうやら、Wi-Fi接続が不安定らしい。

そういえば、旧PCを無線LANで利用するのは、これが初めてです。
どうやら、Wi-Fiアダプタはほとんど役に立たない様子。
仕方ないので、有線LAN接続に切り替えることになりました。

が、有線LANは新PCにつながっており、他もNASだったりサーバ運用しているラズパイがつながっていたりとかして、空きポートがない。
というわけで、HUBを購入してくることになりました。

大学時代(16年くらい前)は、研究室でルータやHUBと格闘していたことがありましたので、そのあたりの知識はある…はず。
201908_sub8a_s.jpg

秋葉原のビッグカメラで、2600円くらいで購入してきました。
実際にお店に着くまでは、5000円以上の支出を覚悟していたので、思ったより安い。
(黒い筐体のものより、白い筐体の方が安かったので、白い方を購入してきました)

昔は、安いHUBといえば「バカHUB」(正式にはリピータハブ)と言って、1つのポートから入ってきた信号を、単純に他の全ポートすべてバラまいていました。(もちろん、減衰した信号を増幅・調整するリピータ機能がある)

ただ単に通信を媒介するだけのため、OSI参照モデルでいうところの「第1層」(物理層)までを意識すればよいという、比較的単純なつくりになっていたんだったはず。

きわめて高速(光速といっても良かったはず)で通信できる反面、複数のデバイスから一斉に通信が来ると、それらすべてが全デバイスにばらまかれ、受信デバイス側で受信データの取捨選択をしなければならなくなり、結果的な通信速度が遅くなります。

そこで「スイッチングHUB」が登場します。
スイッチングHUBでは、通信を必要な相手にしか送りません。
たしか、通信先のアドレスを見て、そのアドレスがどの物理ポートの先に存在するかを見極めてから通信するんだったと思います。
HUB自身がある程度通信プロトコルを理解しなければならないため、OSI参照モデルでいうところの「第2層」(リンク層)を理解する機能がHUB側に必要になります。

HUB内部に物理ポートと通信先アドレスの管理表が格納されており、それをサーチしてから通信先ポートを決定します。
このような判断回路を持つため、通信速度は遅くなりそうですが、ネットワーク上に余計なパケットが飛ばないため、結果的な通信速度は速くなる可能性があります。

とまぁ、そんな感じな、インテリジェントなHUBが「スイッチングHUB」です。
それが2600円で買えました。びっくりでした。


他には、次のような特徴があるようです。

  • 1000BASE-T, 100Base-TX, 10Base-T対応
  • ポート未使用時に電源供給をカット
  • 静音 ファンレス
  • AUTO MDIX
  • ループ検知機能を搭載
  • 製品底面にマグネット付き

底面のマグネットは非常に重要で、サーバラックの支柱に貼り付けるために使います。
これがあるとないとでは大違い。
201907_shub8.jpg

10BASE-Tは「テンベース・ティー」と読むのですが、1000BASE-Tはなんとなく「せんベース・ティー」と読んでしまうクセがあります。他の方はどうでしょう?ちゃんと、「ワンサウザンドベース・ティー」とか読むんでしょうか?

で、重要なのが「AUTO MDIX」ですね。
昔(16年前)は、

 「PCとPCをつなぐときはクロスケーブル
 「PCとHUBをつなぐときはストレートケーブル
 「HUBとHUBをつなぐときはクロスケーブル」(あるいは、カスケード接続用のポートにストレートケーブルでつなぐ)

というルールを叩き込まれました。
ストレートケーブルとクロスケーブルの違いは、物理的な信号線の配置の違いで、2つのデバイスがあまり難しいことを考えずに通信できるような仕組みを実現するためのものです。詳しくはググってください。

このルールに違反すると、通信ができないのですが、ストレートケーブルとクロスケーブルの見た目はほとんどが違いがないため、間違えやすいです。

で、この間違えやすさにブチ切れた頭の良い人が、状況を自動で感知して、ストレートケーブルだろうがクロスケーブルだろうが、正しく通信できるようにしてくれました。それがAuto MDIXです。

この機能のおかげで、HUBのメーカーも、LANケーブルのメーカーも、クレームの電話から解放されたんだとか。
ユーザーの悩みも解決し、メーカーのサポート担当者の負担も軽減され、まさにWin-Winな関係が構築できました。

まぁ、そんな機能を持つので高いかと思っていたら、2600円で買えました。
良い時代になったもんです。

posted by ayacy at 01:42 | Comment(0) | TrackBack(0) | PC

2019年07月05日

最近のWindowsって、ユーザーの意図とは関係なく、とんでもないことをしたりするようになった

新PCを購入し、ちまちまと環境構築中なのですが、旧PCから新PCへファイルコピーしていて、時間がかかりそうなので就寝してしまったら、開いていたはずのエクスプローラがいなくなって、タスクトレイのアイコンがいくつか復活していることに気が付きました。

ファイルのコピー中に、勝手にWindows Updateがかかって再起動したのかもしれません。
どこまでコピーが終わってるんだろ?

ふと見ると、入れていないはずのSkypeが勝手にログインしようとしているし、キャンディークラッシュが勝手に入ってきているし…。

最近のWindowsはどうして余計なことを勝手にするのか。
昔みたいな、バグだらけだけど静かな環境を提供していたWindowsは、どこへ行ってしまったのでしょう?

Windowsの凋落は、こういうところから始まっている気がします。

posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | PC