C#でSkypeAPIを使ってみた その3
chakemiです。本日も掛ける相手もいないのにSkypeAPIを弄ってみました。
前回までのアプリケーションで気になっていた部分があってSkype自体のWindowが前面に表示されてしまうという点。
Skype自体がそんなしゃしゃり出て来られたら、作ったアプリ意味ないじゃん。。。 なので、おじゃまなSkypeのWindowを最小化するボタンを付けてみました。
開発環境
- Windows7
- Visual C# 2010 Express
SkypeのWindowを隠すのにどうしたらいいのか調べたところ SkypeAPIコマンドというものを使うようです。
SkypeAPIコマンドとは、実行中のSkypeクライアントに発行するテキストベースのコマンドのことで、リファレンスには載ってなく(ちゃんと見てないだけですが)Tracer.exeという公式アプリケーションでトレース出来るようです。
コマンドを実行するには、SendCommand()メソッドの引数にコマンドを渡しますが直接、記述はできないようで、CommandClassを使います。
1 2 3 4 5 6 7 8 |
|
Windowを最小化する「MINIMIZE」コマンドを実行して、邪魔なWindowを隠せるようになりました。
もう少しおしゃれに、ボタンではなく常に非表示にしたいとこですが、イベントが発生する度に 前面にしゃしゃり出て来て、めんどくさいのでとりあえずこのままで。。。
次にWindowを隠したので、コンタクトリストだとかも使えるようにしたいと思います。
FormにlistBoxを追加して、そこにコンタクトリストを表示できるようにしたいと思います。 コンタクトリストを取得するには、SkypeコンポーネントのFriendsプロパティからUserオブジェクトを取得します。
1 2 3 4 5 6 7 |
|
フォームをロードするときに呼び出して、リストボックスに追加してみます。
1 2 3 4 5 6 7 8 9 |
|
これで、完成!! 友達が少ないんで、とてもさびしいコンタクトリストが表示されました。。。orz
次回があるかわかりませんが、次は少ないコンタクトリストから選んだ相手にCallしたいと思いますが、 果たして、選べるほどいるのかって問題が先のような気がしてます。泣
コード全体(適当に書いてたので名前空間をusingディレクティブで整理しました)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
|