Live Messengerをいじったり。

久しぶりに、集中して調べものをしたりしたような気がする。

午前中は、昨日の続きということで、無線の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の大規模アップデートはどうなのでしょうか。
動作が速くなったとか、結構良さそうな話も聞くのですが、
正直、規模が大きいアップデートは少々怖い。
今のところ、これといって(目に見えて)不具合があるわけではないので、
逆効果とならないか、少し心配。
とりあえずは、様子見したほうがいいかな。

Posted at : 2007-08-10 20:12:09 / Category : none

Comments

まだコメントはありません / No comment.

Send comment


Name


Mail-address (empty is OK. If you want to notify update, please fill mail-address.)


Bot check code (240503 と入力してください / Please input 240503.)