?
ヘッダーイメージ 本文へジャンプ
日記

2013年01月22日 18時47分
VISTAのタスクが動かない
VISTA のタスクが動かなくなりました・・・

最初は、動いたり、動かなかったりだと思っていたのですが、どうやら
再起動した後しばらくの間動くだけの様でした

原因はよくわかりませんが、手動で動かした場合は動きますし、バッチで動かした場合も大丈夫の様ですので、タスクを監視して実行時間に来ているタスクが有れば、起動してやるバッチを作れば良いかと思います

まず、タスクの一覧ですが

schtasks /Query

で一覧が取れるようです
これの「フォルダ\」のタスクの次回の実行時刻の時間を見て、その時間が来ていれば起動してやればよいかと思います
ただし、次回の実行時刻が過ぎると、その次の時間に勝手になってしまうので、ちょっと早めの判定が必要なようです

起動は schtasks /run /tn タスク名で起動できますので、こんなスクリプトを作りました


Dim wk , FolderName
Dim taskName , taskTime
wk = ""
FoldweName = ""
Do While Wscript.StdIn.AtEndOfStream = false
  wk = Trim( Wscript.StdIn.ReadLine )
  If ( inStr( 1 , wk , "フォルダ\" , 0 ) > 0 ) Then
    FolderName = wk
  End if
  If (( FolderName = "フォルダ\" ) _
        And ( wk <> FolderName ) _
        And ( Len( wk ) > 10 ) ) Then
    wk = Replace( wk , "準備完了" , "" )
    taskTime = trim( right( wk , 23 ) )
    taskName = trim( left( wk , len( wk ) - 23 ) )
    If ( DateAdd( "n" , 0 , taskTime ) _
           < DateAdd( "n" , 1 , Now ) ) Then
      Wscript.StdOut.WriteLine _
          "schtasks /run /tn """ & taskName & """"
    End if
  End if
Loop
                        

で、こいつを起動するバッチを作ります

@echo off
:Loop
schtasks /Query /NH ^
  | FIND /V "N/A" ^
  | cscript //Nologo C:\TOOL\TaskCheck.vbs ^
  | cmd > nul 2>&1
Ping -n 61 localhost > nul 2>&1
goto :Loop
                        

1分おきにタスクの監視をする、無限ループにしました

これを、起動時に実行するタスクとして、タスク登録して手動で実行すれば、とりあえず動いてくれています
コマンドプロンプトが出てくるとうっとしいので、「最上位の特権で実行する」にチェックを付けました

ただし、実行されるタイミングはかなりいい加減で、タイミングによっては動かないことも・・・
※なにかのはずみでタスクが動き出すと、2回動くこともあるので注意

一応、これで何とか動きましたが・・・

タスクがなんで動かないのかわからないので、気持ち悪いです・・・



・VB の DataGridView
・VBScript の CreateObject
・VBS で ZIP圧縮してみる
・VISTAのタスクが動かない
・Windows2008 のタスクが動かない
・.NET の WebClient の接続が遅い


カテゴリー:日記
目次へ戻る


フッターイメージ