Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
- ' 機 能:サンプルコード
- '∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
- Public Sub SampleCode()
- Dim strTaskName As String
- strTaskName = "任意のタスク名" '@任意のタスク名を指定する
- If RunTaskScheduler(strTaskName) Then
- MsgBox "タスクスケジューラの実行が完了しました。" & vbCrLf & _
- "タスク名: " & strTaskName, vbInformation, "実行完了"
- Else
- MsgBox "タスクスケジューラの実行が失敗しました。" & vbCrLf & _
- "タスク名が存在するかご確認ください。" & vbCrLf & _
- "タスク名: " & strTaskName, vbCritical, "実行失敗"
- End If
- End Sub
- '∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
- ' 機 能:タスクスケジューラを実行する
- ' 引 数:Taskname タスクスケジューラに登録している名前を指定してください。
- ' 戻り値:True 成功 / False 失敗(タスク名が存在しない)
- '∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
- Public Function RunTaskScheduler(ByVal Taskname As String) As Boolean
- On Error Resume Next
- If InStr(strTaskSchedulers, Taskname) > 0 Then
- With CreateObject("WScript.Shell")
- .Run "SCHTASKS /Run /TN " & Taskname, 0, True
- End With
- RunTaskScheduler = True
- Else
- RunTaskScheduler = False
- End If
- End Function
- '∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
- ' 機 能:タスクスケジューラの一覧を取得する
- ' 戻り値:タスクスケジューラ一覧をテキストで戻す
- '∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
- Public Function strTaskSchedulers() As String
- On Error Resume Next
- Dim oWshShell, oExec, oStdOut, oStdErr
- Dim strStdOut As String
- Dim strStatus As String
- Set oWshShell = CreateObject("WScript.Shell")
- Set oExec = oWshShell.Exec("SCHTASKS")
- Set oStdOut = oExec.StdOut
- Do While Not oStdOut.AtEndOfStream
- strStdOut = oStdOut.ReadLine()
- '@フォルダー\Microsft以下は出力しない
- If strStdOut Like "*フォルダー\Microsoft*" Then: Exit Do
- If _
- Not strStdOut Like "フォルダー*" And _
- Not strStdOut Like "タスク名*" And _
- Not strStdOut Like "=*" And _
- Not strStdOut Like "Microsoft*" And _
- Not strStdOut Like "User_Feed*" Then
- Select Case True
- Case InStr(strStdOut, "準備完了") > 0: strStatus = "有効: "
- Case InStr(strStdOut, "実行中") > 0: strStatus = "実行: "
- Case InStr(strStdOut, "無効") > 0: strStatus = "無効: "
- Case Else: strStatus = ""
- End Select
- '左から最もと近い空白スペースまでを取得(ステータスや実行予定日を出力しない)
- strStdOut = Left(strStdOut, InStr(strStdOut, " "))
- If strStdOut = "無効" Then: Exit Do
- strTaskSchedulers = _
- strTaskSchedulers & strStatus & Replace(Replace(strStdOut, Chr(10), ""), Chr(13), "") & vbCrLf '改行位置を整形する
- End If
- Loop
- End Function
Add Comment
Please, Sign In to add comment