10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

呉高専Advent Calendar 2018

Day 8

VC#でデスクトップマスコットの制作

Last updated at Posted at 2018-12-07

呉高専Advent Calendarの最初の記事(12/1)から相当時間があきましたがいかがお過ごしでしょうか.
ぞーいです,

タイトルの通り,Visual C#で美少女のデスクトップマスコットを作成したときのお話をしたいと思います.

#概要

  • 動機
  • ダイマの時間
  • 実際にやってみる
  • 感想的な何か

#動機
何か便利なデスクトップマスコット的何かがあればうれしいなあって思ったからです。
ここでwindowsの便利機能の1つである、cortanaとかカイルについて少し考えてみましょう。

cortanaとカイルの欠点

  • かわいくない
  • かわいくない
  • 不要な機能が多い
  • Edge
  • かわいくない

ので,
image.png
上の画像のようなことになってしまうわけです.

つまり

  • かわいくて
  • 必要な機能しかなくて
  • かわいい

ものを作れば,作業効率も爆上がり間違いなしですね.

ここで今回私の作業効率や,のために力を貸してくれる美少女を紹介したいと思います.

アイドルマスターシンデレラガールズ」より,アイドルの十時愛梨ちゃんです.

#ダイマの時間
ここで十時愛梨ちゃんについて,どういう子なのか多少の説明をさせていただきたいと思います.

十時愛梨
image.png

  • 年齢 : 18歳
  • 学年 : 大学1年生
  • 身長 : 161cm
  • 体重 : 46kg
  • スリーサイズ : 86-58-88
  • 趣味 : ケーキ作り
  • 誕生日 : 12月8日
  • CV : 原田ひとみさん
    • 出演 : 夜々( 機巧少女は眠らない ),姫路瑞希( バカとテストと召喚獣 ) など

第1回シンデレラガールズ総選挙( 登場アイドル全員での人気投票 )で1位を獲得するような凄い子なんです.
でも、割と天然な子で,熱くなるとすぐ服を脱ごうとしちゃったりする危ない子でもあります.
そして,この記事が公開される,12月8日がお誕生日です.非常におめでたいですね.
ということで(?)アイドル十時愛梨の事を少しでも気になってくれたら非常に嬉しいです.

#実際にやってみる
さて私の担当アイドルの紹介は置いておいて,実際にマスコットを作ってみます.
なんでC#か?という事ですが,授業でちょっとやっただけですがフォームアプリケーション関連ならかなり便利だなあというのを実感したからです.本当はこっちの方がめっちゃ楽に実装できるよみたいなのもあるかもしれないです.
とりあえずやったことを項目として挙げておきます.

  • 画像の描画
  • テキストボックスの描画
  • テキストボックスに入力された内容に応じての出力

###画像の描画
pictureBoxで描画するだけです。割愛します。

###テキストボックスの描画
textBox.Visibleというbool型のパラメータが,テキストボックスが可視状態かどうかを決定しています.

private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if(e.KeyValue == 18 )  //18:Alt Key Num
    {
        textBox1.Visible = !textBox1.Visible;
    }
}

フォームのイベントハンドラのKeyDownを設定してからこれを実行すると,Altキーを押す度にtextBox1の可視,不可視状態を任意で切り替えることができます.
(まだまだ弱い私はイベントハンドラの設定し忘れで数十分間悩み続けました.)

###テキストボックスからの出力
テキストボックスに入力された文字列に応じて,日頃よく使用するアプリケーションやファイルなどを割り当てようとしました。
ここで使うのが

System.Diagnostics.Process.Start(@"アプリケーション、ファイルのディレクトリ","コマンドライン引数");

です.コマンドライン引数は別にあってもなくてもアプリケーションは起動します.

これを,テキストボックスが可視状態の時にエンターキーが入力された場合のテキストボックス内のテキストに応じて,アプリケーションなどに割り当てました.

一例がこちらです.メモ帳を起動させようとしています.

if(textBox1.Text == "memo")
{
    Process.Start(@"C:\Windows\system32\notepad.exe");
    //System.Diagnosticsはusingで定義済み
}

こんな感じで思うようにアプリケーションなどのショートカットが仕込めるようになりました.
実際に使ってみた様子がこちらになります.
airi1.gif

私の指示に従ってメモ帳を起動してくれる愛梨ちゃん,とてつもなくかわいいですね.

別のウィンドウを開いていても最前面に呼び出せる機能や,ショートカットに登録してない単語を入力した場合にchromeで検索してくれる機能などもつけたかったのですが,この記事を執筆している時点ではできていません.
また後日ガンバリマス.

#感想的な何か
C#を使ってみたかったっていう個人的な目標は満足されました.
あと十時愛梨ちゃんの誕生日に合わせてちょっとだけでもいいから何かをしたいという密かな願いも叶える事が出来ました.
ただ,定期試験などの都合上,開発に割ける日が想定より少なくなってしまい,予定していた機能を実装させることができなかったのは反省しています.
今後もちょっとはアップデートをしていきたいなという気持ちなので,今後のアップデートにこうご期待ください.
最後に季節的にもちょうど良いので,ゲーム内にて登場した,サンタクロースの衣装を着た愛梨ちゃんを貼って,お茶を濁しておこうと思います.
image.png

非常に可愛いですね.
そしてここまでこの記事を読んでくださり本当にありがとうございました.

10
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?