久しぶりに、集中して調べものをしたりしたような気がする。
午前中は、昨日の続きということで、無線のSSIDを
取得する方法をいろいろとやってみた。
だけど、結局できずじまい。
仕方がないので、方向転換をして、ネットワークの
インタフェースの情報を取得する部分と、
XMLでIPアドレスなどのデータを入力する部分、
それらの情報を正規表現をもとに、検索する部分をかいた。
言語は、C#。かなり楽にできる。
それが終わったら、今度は、Live MessengerのAddin
機能を使って、Messengerのサブネームの部分を
書き換える部分を作ってみた。
ただ、ここで問題が発生。
今まで作った部分とAddinの部分をくっつけたら、
次のようなエラーが出てしまった。
「型 System.Net.NetworkInformation.NetworkInformationPermission,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 の
アクセス許可の要求に失敗しました。」
たぶん、原因は、Addinの実行がローカル実行ではなくて、
インターネット上の実行と同じ状態になっていてて、
.NET Frameworkのコード・アクセス・セキュリティ機能にひっかかってるみたい。
.NET Frameworkのセキュリティ設定を変えてもみたけど、
これでも、うまくいかず。
仕方がないので、普通にサブネームの部分を変える方法を探してみる。
まず、方法としては、MessengerAPIを使う方法と、現在再生中の音楽を表示させる
機能を使って表示させる方法、かなり雑だけど、操作をエミュレートする方法、の
3つがあった。
一番最後の方法は、あまりスマートな方法といえないのと、失敗することが
たびたびあったので、あきらめた。
MessengerAPIを使う方法は、名前の部分を取得すること自体は、
C#でも、簡単にできる。20行あれば、現在の名前を表示することは簡単。
だけど、取得はできても、設定はできない仕様になっていて、
これも使えなかった。
それに、サブの名前の部分は、古いライブラリのためか、
実装されていなかった。
そうすると、最後に残った音楽表示を利用する方法。
これだと、あまり見栄えがよくないが、仕方がなかった。
まぁ、通常表示だと音楽アイコンだけなのだけど、実は、
Officeアイコンが使えるので、それを使うことで妥協した。
というわけで、昨日、今日とWindows Management Instrumentationについてと、
Windows Live Messengerについて、少し学んだ。
今回、作ったソフトは、ネットワークインタフェースの条件をもとにして、
メッセンジャーのサブネームの部分を変更するというソフトを作った。
これで、自動的に自分がどこにいるのか、メッセンジャー上に表示できる。
ネットワークインタフェースの条件としては、IPアドレス、MACアドレス、
DHCP、DNS、ゲートウェイが指定できるようにした。
おそらく、これらの条件があれば、(少なくとも自分が今居る状況では)
一意に場所を定めることは可能だと思う。
あと、検索の条件として、正規表現を使えたり、サブネームと
条件を指定する部分は、XMLファイルになっているため、編集しやすかったりします。
一応、配布については、一般公開は今のところはしません。
欲しい方は、メールなどで連絡をいただければ、
ソースコードも含めて渡すことはできます。
ところで、Vistaの大規模アップデートはどうなのでしょうか。
動作が速くなったとか、結構良さそうな話も聞くのですが、
正直、規模が大きいアップデートは少々怖い。
今のところ、これといって(目に見えて)不具合があるわけではないので、
逆効果とならないか、少し心配。
とりあえずは、様子見したほうがいいかな。