タイマー駆動アプリの作り方
[Japanese Pocket C User's Page]-[Tips!]
BBS上にて、「AP-TIMER」の作者であるryoさんと、「かめタイマー」の作者であるイルカさんの間で、
PocketCを使ったタイマー起動アプリケーションの作り方について議論が交わされていましたので、
その内容をかいつまんでまとめてみました。
1.runapptimeを使う上での注意
タイマー起動をするためには、runapptimeという関数を使います。
マニュアル等には記載されていない、利用する上で気をつけるべきことは
次の通りです。
1)設定の上での注意事項
同じプログラムパスを2回以上、runapptime()で指定すると、後の方の命令しか実行されない
例)
runapptime([exeファイルパス], M1, D1, h1, m1);
runapptime([exeファイルパス], M2, D2, h2, m2);
この場合、実行されるのは後者のみ実行されることになります。
2)設定の取り消し
設定を取り消すためには、
runapptime([exeファイルパス], 0, 0, 0, 0);
とすればOK
3)exe以外の形式のプログラムを走らせるには?
runapptimeでは、exe形式のプログラムしか実行することができません。
.lnkや、appファイルを実行させるためには、runapptimeではなく、
関数execを使う必要があります。
2.サスペンドの制御
タイマー起動をさせるということは、サスペンドの制御を行う必要があります。
1)強制サスペンド
次のコマンドで、強制的にサスペンドをさせることが可能。
keyevent(0xDF, 0, 0, 0);
2)サスペンド状態からの復旧
サスペンド状態から復旧するためには、clocknot.exeというプログラムを呼び出せばいいようです。
つまり、
runapptime("\\Windows\\clocknot.exe", ", M1, D1, h1, m1)
ということ。
3.で、これらを組み合わせて・・・
これらのことから、
1)定期的にapptime関数で、clocknot.exeを呼び出す。
2)タイマーイベントでexec関数を呼び出す。
を組み合わせれば、タイマー起動アプリケーションが出来そうですね。