|
SetAutoPushTimer, SetAutoPushTimerMilli, SetAutoPushTimerEver, StopAutoPushTimer関数(TKInfo.dll)(Ver6.14対応版)
- SetAutoPushTimer, SetAutoPushTimerMilli関数
-
SetAutoPushTimer, SetAutoPushTimerMilli関数は、メッセージボックスのボタンを一定時間後に押すためのタイマーをセットします。
例えば、「切断しますか?」のメッセージボックスを表示しつつ、ユーザーが何もしなかったら自動的に10秒後に「はい」ボタンを押させたい場合などに使います。
この関数を呼び出した後は、必ずメッセージボックスを表示する必要があります。メッセージボックスを表示しないままマクロを終了してもこのタイマーは生き続けてしまうので、後でメッセージボックス類が誤動作してしまいます。
この関数はダイアログボックスやその他一般のウィンドウについても使えてしまいます。ただし、ダイアログボックスの「OK」ボタンや「キャンセル」ボタンが標準的な「IDOK」や「IDCANCEL」といったIDで定義されていないとうまく動作しません。
- パラメータ1(数値型)
-
何秒後にボタンを押すかの時間を指定します。SetAutoPushTimer関数の場合は秒単位、SetAutoPushTimerMilli関数の場合はミリ秒単位(1/1000秒単位)です。
- パラメータ2(文字列型)
-
押して欲しいボタンを指定します。以下の種類が指定できます。
"" | メッセージボックス中のデフォルトのボタン |
"ok" | 「OK」ボタン |
"cancel" | 「キャンセル」ボタン |
"yes" | 「はい」ボタン |
"no" | 「いいえ」ボタン |
"retry" | 「再試行」ボタン |
"ignore" | 「無視」ボタン |
"abort" | 「中断」ボタン |
数値の文字列 | 数値で指定したコントロールIDのボタン(V5.70β13より) |
- 返り値(数値型)
-
返り値に意味はありません。
例 |
#n = dllfunc("SetAutoPushTimer", 10, "yes");
question( "切断しますか?");
if( result == yes ) #n = dllfunc("Hangup");
|
- SetAutoPushTimerEver関数
-
SetAutoPushTimerEver関数は、パラメータで指定されたウィンドウ配下に出てくるメッセージボックス/ダイアログボックスについて、すべて自動的にボタンを押してしまう動作をします。メッセージボックス/ダイアログボックス類による問い合わせが連続して出てくるようなケースで、それらをすべて自動処理させたい場合に使います。
- パラメータ1(数値型)
-
自動処理の対象となるウィンドウのハンドルを指定します。普通、hidemaruhandle(0)を指定します。
- パラメータ2(文字列型)
-
押して欲しいボタンを指定します。SetAutoPushTimer関数と同じです。
押して欲しいボタンが存在しなかった場合は、IDOKのボタンを探して、もしそれがあればそれを対象とします。IDOKも無かった場合はIDCANCELが対象となります。
例 |
#n = dllfunc("SetAutoPushTimerEver", hidemaruhandle(0), "yes");
#n = dllfunc("SendNow");
#n = dllfunc("StopAutoPushTimer");
|
- StopAutoPushTimer関数
-
StopAutoPushTimer関数は、SetAutoPushTimer系関数でセットしたタイマーを止めます。
SetAutoPushTimer/SetAutoPushTimerMilli関数の場合は別に必要ありませんが、SetAutoPushTimerEver関数を呼び出した場合は、マクロを終了する前に、必ずこの関数を呼び出すようにしてください。でないとマクロを終了した後もタイマーが動作し続けてしまい、
余計な警告メッセージ類まで自動的に処理されてしまう恐れがあります。
|