一定時間ごとにイベントを行いたい場合、どのような方法が適しているでしょうか。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
シャープ
記事: 19
登録日時: 11年前

一定時間ごとにイベントを行いたい場合、どのような方法が適しているでしょうか。

#1

投稿記事 by シャープ » 11年前

こんにちは。

デスクトップマスコットのようなものを作ろうとしているのですが、
プログラム内での時間(朝か、夜かなど)を(現実世界の)一定時間ごとに操作したり、
デスクトップマスコットが一定時間ごとに自分でつぶやいたり、
ユーザからアクションがあった時に対応したり、などの動作を実現するには、
どのようなコーディングをすればよいのでしょうか。

私はこれまでゲームを作ったことが少しだけあるので、
ループ処理で時間経過を判断するのかとも思ったのですが、
ゲームのように頻繁に画面描写が変化したり、刻一刻と演算が走ったりするわけではないので、
FPS30などの頻繁な操作は無駄だろうかと感じました。

検索したところ、Timerメソッドというものがあるようですが、
これを利用するのが一番いいのでしょうか?
そのほかに使うべきキーワードがありましたら、お伝えください。

よろしくお願いいたします。

シャープ
記事: 19
登録日時: 11年前

Re: 一定時間ごとにイベントを行いたい場合、どのような方法が適しているでしょうか。

#2

投稿記事 by シャープ » 11年前

連続投稿してしまい申し訳ありません。言語はC#です。

Timerを使って監視した場合、Timer動作中にユーザからの入力(Console.ReadLineなどを用いる)
を行うことはできませんか?

また、やはりゲームのようなループを利用するのは無駄でしょうか。

お返事をよろしくお願いいたします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: 一定時間ごとにイベントを行いたい場合、どのような方法が適しているでしょうか。

#3

投稿記事 by softya(ソフト屋) » 11年前

普通にウィンドウアプリとして制作されたほうが良いと思います。
※ 背景が透明なウィンドウアプリと思ってもらえば。
入力する場合はeditなどのコントロールを使います。

ネットで公開している人もいるので参考にしてみてください。
「いえひのプログラミング部屋  【C#】 デスクトップマスコットの作り方pert1 「画像の表示」」
http://skylinker.blog.fc2.com/blog-entry-29.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

シャープ
記事: 19
登録日時: 11年前

Re: 一定時間ごとにイベントを行いたい場合、どのような方法が適しているでしょうか。

#4

投稿記事 by シャープ » 11年前

softyaさん、お返事をありがとうございます。
実はデスクトップマスコットというのは比喩でして、本当は人口無能のようなものを制作したいのです
(人口無能というにはあまりにお粗末なためこのように申し上げました)。
一定時間が経過すると自分で発言し、それ以外はユーザからのアクションにこたえるといった形です。
このプログラムを立ち上げつづけ、どこかのサーバーに配置してツイッターへの投稿などが
できればと考えております。
入力というのも、ツイッターからの入力などを想定しておりましたが、
そこに至るまではご教授いただきました「edit」を使用したいと思います。

ご提案いただきましたサイトは参考にさせて頂いておりましたが、途中で更新が途切れている
(part5からの続きがない)ように思っておりまして、そこから先を確認しておりませんでした。
これから確認いたします。

お返事をありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: 一定時間ごとにイベントを行いたい場合、どのような方法が適しているでしょうか。

#5

投稿記事 by softya(ソフト屋) » 11年前

C#でツイッターと通信するアプリの場合は、GUIは特に必要ないですね。
動作状況の表示としてはウィンドウがあったほうが便利かもしれません。
なので、デスクトップアプリとは作り方が変わってきます。

>どこかのサーバーに配置してツイッターへの投稿などが

C#を動かすサーバーはレンタル料が高いかもしれません。
あとC#のWEBサーバーアプリはデスクトップと全然違う作り方をします。
自分のパソコンで起動中だけそのマスコット専用に用意したツイッターアカウントと交信するアプリで良いんじゃないでしょうか。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

シャープ
記事: 19
登録日時: 11年前

Re: 一定時間ごとにイベントを行いたい場合、どのような方法が適しているでしょうか。

#6

投稿記事 by シャープ » 11年前

softyaさん、お返事をありがとうございます。
先ほどお伝え頂いたとおりウィンドウを利用した方法で制作を進めていたのですが、この方がとても見やすいと感じました。ご助言をありがとうございました。
また先のサイトですが、やはりpart5で更新が止まってしまったようで、確認することはできませんでした。
しかし、ウィンドウアプリケーションでのTimerは使い方がわかりやすく、現在考えの通りに利用することが
できておりますので、問題はないと思います。

>C#を動かすサーバーはレンタル料が高いかもしれません。
フリーサーバーなども提供されているご時世ですのであまり深く考えておりませんでしたが、
やはり自分のパソコンの中での稼働がよいのかもしれませんね。
こちらの方向で考えを進めてまいります。

お早いご教授、まことにありがとうございました。
これをもちましてこちらのスレッドは解決とさせていただきます。
よろしくお願いいたします。

閉鎖

“C言語何でも質問掲示板” へ戻る