プログラム目覚し機能との連携の仕方


始めに
こんな所までリンクをたどっていただきありがとうございます。
「プログラム目覚し機能」は「うさちゃん目覚し」の基本機能として実装した 「時間になったら起き上がって仕事をする」機能...皆がそれぞれ1からやる と結構大変だと思ってるのですが...を、他のMOREソフト開発の 仲間の皆さんと共有したいと考え実装した物です。
何か面白いアイデアがありましたらぜひ使ってみて下さい。
インターフェース
「プログラム目覚し機能」に対応するためのお約束は、今のところ次の2つだけです。
その1:パラメータを受けとる
「うさちゃん目覚し」から呼び出しをする時、「うさちゃん目覚し」は xxxxUSAP.PRF (xxxxは呼び出されるMOREソフトの識別子) のキー"PARM" にパラメータをセットします。長さは50バイト固定です。プリファレンス マネージャのAPIを使ってアクセスできます。

呼び出されるMOREソフトは、この値を読み込む事で「うさちゃん目覚し」 からパラメータを受け取る事ができます。
また、このパラメータをとれるかどうかで「うさちゃん目覚し」から呼び出され ているのか、普通に起動されているのかを識別する事ができます。

コーディングの例は次のようになります。
    UCHAR   Parm[50];    // ここにパラメータを受け取ります。
                         // パラメータがないときは NULL です。
    BOLEAN  bMezamashi;  // これがオンなら「うさちゃん」からの起動です。

    If(!GetPrefValue((UCHAR*)"xxxxUSAP",(UCHAR*)"PARM",(void*)&Parm,50)){
        // 読み出し失敗。普通の起動。
        bMezamashi=FALSE;
    } else {
        // 読み出し成功。「うさちゃん」からの起動。
        bMezamashi=TRUE;
    }
    <略>
    if(bMezamashi) {
        // ここでバッチ処理を行います。
    }
    
この例はごく単純な例です。やりたい事の複雑さにもよりますが、場合によっては パラメータの受け取り部分を FormSetUp などで受け取り、バッチ処理部分は Form が表示されてから、タイマー処理などで行う事になるかもしれません。

その2:最後に xxxxUSAP.PRF を削除する
プログラムの終了時に(FormEndなどで)xxxxUSAP.PRF を削除します。 「うさちゃん目覚し」はこのファイルが無い状態を呼び出したMOREソフト の処理が終了した状態とみなします。

コーディングの例は次のようになります。
    FileDelete((UCHAR*)"F0:xxxxUSAP.PRF");
    
「うさちゃんカメラ」はこの方法で動作していますのでこれで連携はとれるはずです。 何かおもしろい物ができたらぜひ教えてくださいねっ!!!
最後に
いちおう、お約束のおことわり事ですが...
万が一に備えてデータのバックアップ等をとって開発をしてください。何かしらの 損害が起きても一切保証はできません。
「うさちゃんプロジェクト」のMOREソフトに戻る
「うさちゃんプロジェクト」のTopへ戻る