数分後に自動でシャットダウンしてくれる簡易なスクリプトを書きたい

数分後に自動でシャットダウンしてくれる簡易なスクリプトを書きたい

30分後にシャットダウンする、1時間後にシャットダウンするというスクリプトをUWSCで作ろうとしています。毎回時間をスクリプトに記入して保存するのが煩雑です。

予定時間、条件を元にPCをシャットダウンしてくれるツール、方法はたくさんあります。
もちろんUWSCにもシャットダウンするためのPOFF(P_POWEROFF)という関数があり利用可能です。

場面としては、長時間のファイルダウンロード、動画変換、その他自動処理中など、長時間PCに張り付いていたくない、だけどもある程度時間がたったらシャットダウンしたいという光景が浮かびます

お悩みの方は毎回、スクリプトに時間を記入しているそうなので、
そこはスクリプトが立ち上がるたびに値入力のウィンドウが出るようにしましょう。
また、単純にSLEEP(指定秒数)とした後にPOFF関数を実行するのも問題ありませんが、 それだと後どのくらい経過すればシャットダウンするかが分からず、少し不親切かもしれません。

SCD = INPUT("何分後にシャットダウンしますか?") * 60
SLEEP(SCD)
POFF(P_POWEROFF)

上のようなスクリプトを少し改善して、
何分後にシャットダウンされるのか可視化してあげましょう。
スクリプトは以下のようになります。

//値を整えて、秒数を取得
MNT = INT( TRIM( INPUT("何分後にシャットダウンしますか?") ) ) 
FOR A = MNT TO 1 STEP -1
 FUKIDASI(MNT + "分後にシャットダウン")
 SLEEP(60)
NEXT
POFF(P_POWEROFF)

タグ

2013年3月1日 | コメントは受け付けていません。 |

カテゴリー:Q&A

ストップウォッチを作りたい

ストップウォッチを作りたいです。
ループ文で1秒経過するごとにFUKIDASIで時間を表示するところまではできました。
ただ、FUKIDASI中に別の処理をするのはどうすればよいのかわかりません。
SLCTBOXと、タイムアウト秒設定を使いましょう

FUKIDASIによる時間制御まで来ているのは、
とってもよいアプローチです。

時間の表示までは出来ているので、スタートとストップボタンも併せて出すようにしましょう。

と言ってもFUKIDASI関数にはそのような機能はないので、
SLCTBOX関数の出番です。

まずはただの時間表示スクリプト

ご質問にあるようなループ文とFUKIDASIによる時間表示スクリプトは以下の通りです。

TIME = 0
WHILE TRUE
 TIME = TIME + 1
 SLEEP(1)
 FUKIDASI(TIME + "秒経過",0,0,0,20)
 //一応10秒経ったら終了
 IF TIME > 10 THEN EXIT
WEND

スクリプト

では、ストップウォッチを作りましょう。
ループ文の中にSLCTBOXを記述します。
これだと、スクリプトが選択肢が出てきた所で、
進まないんじゃないのかという懸念がありますよね。
でも大丈夫、タイムアウト秒の設定というものがあり、
指定時間を経過すると次のステップに進むことができます。
スクリプトは以下のようになります。

//開始時間
START = GETTIME()
//スタート、ストップの状態を判別
CNTFLG = 1

WHILE TRUE
  //開始時間 - 現在時間で経過時間取得
  NOW = GETTIME() - START 

  //ストップウォッチ、CNTFLG=0の場合はタイムアウト無し=ストップ状態
  SELECT SLCTBOX(SLCT_BTN,CNTFLG,NOW + "秒","スタート","ストップ")

    //スタート
    CASE SLCT_1
      //再スタートはリセット
      START = GETTIME()
      CNTFLG = 1


    //ストップ
    CASE SLCT_2
      CNTFLG = 0

    SELEND
WEND

どうでしょう。期待通りの動きをしていますか。
まずはスクリプト起動時に時間カウントがスタートし、秒数が表示されます。
ストップを押せば、カウントは止まります。
そして再び、スタートをクリックすれば、時間がリセットされてカウントがリスタートします。

しかし、上記のスクリプトでも
少し不親切な気がします。
時間計測中(スタート中)にスタートを押した場合はどうなるでしょうか。
強制的に終了したい場合はどうでしょうか。
少しスクリプトを親切にしてみましょう。
以下のようになります。

この投稿の続きを読む »

タグ

2012年6月24日 | コメントは受け付けていません。 |

カテゴリー:Q&A

FUKIDASI

FUKIDASI関数

吹き出しを表示
FUKIDASI(メッセージ, x, y, [向き, フォントサイズ, フォント名, 文字色, 背景色, 透明化]) 

引数

メッセージ・・・表示する文言
x, y・・・位置
くちばしの向き・・・
 0:くちばし無し
 1:上くちばし
 2:下くちばし
 3:左くちばし
 4:右くちばし
フォントサイズ・・・文字のフォントサイズ
フォント名・・・文字のフォント名
文字色・・・BGR値にて指定
背景色・・・BGR値にて指定
透明化・・・ 0:不透明~255:透明、-1:バックを透明化、-2:外枠も非表示
※引数なしで吹出しを消す
※BGR値の指定例・・・赤:$0000FF、黄:$FFFF

吹き出しを表示する

吹き出しを表示するスクリプトです。

FOR A = 5 TO 0 STEP -1
FUKIDASI("あと" + A + "秒",100,100,0,40)
SLEEP(1)
NEXT

常にカーソルの下に吹き出しを表示する

カーソルの位置を取得する特殊変数を使い
常にカーソルの下に吹き出しを表示します。
スクリプトは以下の通りです。

この投稿の続きを読む »

タグ

2012年4月1日 | コメントは受け付けていません。 |

カテゴリー:関数一覧

このページの先頭へ