#! /usr/bin/wish -f # -------------------------------------------------------------------- # 何かのタイマー # -------------------------------------------------------------------- # 起動画面はこんな感じ: # +--------------------------+-------+ # |2008/11/11 (Tue) 19:29 | 25min | # +--------------------------+-------+ # ここで、左側の時刻表示部分をクリックすると終了。 # 右側がタイマーになってて「残り時間」を表示。最初は $my_default_secs # 残り時間がゼロになると myExit を実行。 # 残り時間部分をクリックすると $my_add_secs 秒を「残り時間」に加算 # 残り時間が多いほど時刻・残り時間表示は結構いい加減になります (^_^; # -------------------------------------------------------------------- # 動作確認:: Tck/Tk (wish.exe) v8.4 on Windows # エラーが出るときは (1)日本語部分を削る (2)wmで始まる行を削る # -------------------------------------------------------------------- #set my_add_secs 20 #set my_default_secs 30 set my_add_secs 1800 set my_default_secs 7200 proc myExit { } { exec {\Apps\usr-local\bin\shutdown_____\shutdown.exe} {-r} destroy . } proc myGetNow { exflag } { global stt set xnow [clock seconds] set wmsec 199 set a [clock format $xnow -format {%Y/%m/%d (%a) %H:%M}] set b [expr $stt - $xnow] if { 7200 < $b } { set b [expr $b / 3600] ; append b " hr" .ba configure -foreground green -background "#CCFFCC" set wmsec 19999 } elseif { 305 < $b } { set b [expr $b / 60] ; append b "min" .ba configure -foreground black -background "#CCCCCC" set wmsec 9999 } else { append b "sec" .ba configure -foreground red -background "#000000" } if { $b < 0 } { myExit } .la configure -text "$a" .ba configure -text "$b" if { $exflag < 1 } { after $wmsec { myGetNow 0 } } } wm geometry . "+400+0" wm attributes . -topmost 1 -toolwindow 1 -alpha 0.75 wm overrideredirect . 1 set stt [expr [clock seconds] + $my_default_secs] button .la -text "Now" -font {{Arial} 9} -command { exit; } -relief flat -bg "#6666FF" pack .la -side left button .lsp -text " " -font {{Arial} 9} -command { myGetNow 1 } -padx 2 -relief flat -bg "#6666FF" pack .lsp -side left button .ba -text "+120" -command { set stt [expr $stt + $my_add_secs] ; myGetNow 1 } .ba configure -font {{Arial} 9 bold} -relief ridge pack .ba -side left myGetNow 0