デスクトップマスコット「Apricot」をPythonで機能拡張する方法
スクリプト言語「Python」を使ってデスクトップマスコット「Apricot」を機能拡張する方法をまとめてみました。
このPython言語を使って実際に出来るとことは、
- .NETで提供されるクラスライブラリを使って開発
- Scriptクラスによる「Apricot」へのアクセス
というような感じです。.NETのクラスライブラリは制限無く使えるので、タイマーやスレッドなどからGUIまでPythonで記述することが出来ます。
あと、ScriptクラスをPythonのコード内で使うと「Apricot」へアクセス出来ます。
「Apricot」を制御するためのメソッドは、
- Idle() ...アイドル状態の呼び出し
- Alert(TimeSpan ts, string name) ...アラートの呼び出し
- Capture(bool reset) ...RSS/Atomフィードの取得。引数がTrueの時はキャッシュのクリア。
- Find(string query) ...検索開始
- Neutral() ...ニュートラル(デフォルトの立ち絵)の呼び出し
などがあります。
以下のコードは、3分後にユーザーに情報を通知するタイマープログラムです。また、このプログラムでは1分毎に情報を通知するようになっています。情報を通知する方法としては、Script.Alertを用いています。
尚、このコードをファイルに保存し、Apricot.exeがあるフォルダ、またはキャラクターのセリフなどが記述されたXMLファイルがあるフォルダに配置すると、コンテキストメニューで使用可能になります。
ちなみに、前者のフォルダだと全てのキャラクターに共通で実行出来、後者だとキャラクター固有になります。
# -*- encoding: utf-8 -*- import clr from System import * from System.Timers import * def onTimedEvent(timer, e): global ts ts = ts.Add(TimeSpan(0, 0, 0, 0, timer.Interval)) if ts.TotalMilliseconds >= 0: timer.Stop() ts = TimeSpan(0) Script.Alert(ts, "カップラーメン") ts = TimeSpan(0, -3, 0) timer = Timer() timer.Interval = 1000 * 60 timer.AutoReset = True timer.Elapsed += onTimedEvent timer.Start()