Guest User

Untitled

a guest
Jun 23rd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. '∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
  2. ' 機 能:サンプルコード
  3. '∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
  4. Public Sub SampleCode()
  5.  
  6. Dim strTaskName As String
  7. strTaskName = "任意のタスク名" '@任意のタスク名を指定する
  8.  
  9. If RunTaskScheduler(strTaskName) Then
  10. MsgBox "タスクスケジューラの実行が完了しました。" & vbCrLf & _
  11. "タスク名: " & strTaskName, vbInformation, "実行完了"
  12. Else
  13. MsgBox "タスクスケジューラの実行が失敗しました。" & vbCrLf & _
  14. "タスク名が存在するかご確認ください。" & vbCrLf & _
  15. "タスク名: " & strTaskName, vbCritical, "実行失敗"
  16. End If
  17.  
  18. End Sub
  19.  
  20. '∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
  21. ' 機 能:タスクスケジューラを実行する
  22. ' 引 数:Taskname タスクスケジューラに登録している名前を指定してください。
  23. ' 戻り値:True 成功 / False 失敗(タスク名が存在しない)
  24. '∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
  25. Public Function RunTaskScheduler(ByVal Taskname As String) As Boolean
  26. On Error Resume Next
  27. If InStr(strTaskSchedulers, Taskname) > 0 Then
  28. With CreateObject("WScript.Shell")
  29. .Run "SCHTASKS /Run /TN " & Taskname, 0, True
  30. End With
  31. RunTaskScheduler = True
  32. Else
  33. RunTaskScheduler = False
  34. End If
  35. End Function
  36.  
  37. '∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
  38. ' 機 能:タスクスケジューラの一覧を取得する
  39. ' 戻り値:タスクスケジューラ一覧をテキストで戻す
  40. '∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
  41. Public Function strTaskSchedulers() As String
  42. On Error Resume Next
  43.  
  44. Dim oWshShell, oExec, oStdOut, oStdErr
  45. Dim strStdOut As String
  46. Dim strStatus As String
  47. Set oWshShell = CreateObject("WScript.Shell")
  48. Set oExec = oWshShell.Exec("SCHTASKS")
  49. Set oStdOut = oExec.StdOut
  50.  
  51. Do While Not oStdOut.AtEndOfStream
  52. strStdOut = oStdOut.ReadLine()
  53. '@フォルダー\Microsft以下は出力しない
  54. If strStdOut Like "*フォルダー\Microsoft*" Then: Exit Do
  55. If _
  56. Not strStdOut Like "フォルダー*" And _
  57. Not strStdOut Like "タスク名*" And _
  58. Not strStdOut Like "=*" And _
  59. Not strStdOut Like "Microsoft*" And _
  60. Not strStdOut Like "User_Feed*" Then
  61. Select Case True
  62. Case InStr(strStdOut, "準備完了") > 0: strStatus = "有効: "
  63. Case InStr(strStdOut, "実行中") > 0: strStatus = "実行: "
  64. Case InStr(strStdOut, "無効") > 0: strStatus = "無効: "
  65. Case Else: strStatus = ""
  66. End Select
  67. '左から最もと近い空白スペースまでを取得(ステータスや実行予定日を出力しない)
  68. strStdOut = Left(strStdOut, InStr(strStdOut, " "))
  69. If strStdOut = "無効" Then: Exit Do
  70. strTaskSchedulers = _
  71. strTaskSchedulers & strStatus & Replace(Replace(strStdOut, Chr(10), ""), Chr(13), "") & vbCrLf '改行位置を整形する
  72. End If
  73. Loop
  74.  
  75. End Function
Add Comment
Please, Sign In to add comment