2017-04-12 9 views

답변

0

를 도움이 필요, 나는 해결책을 얻었다. 나는 여전히 인수를 얻을 수 없었기 때문에 서비스를 만들었고, 모든 작업을 완료했으며, 루프 내부에서 루프를 통해 작업 파일을 얻었습니다. XML 파일을 읽었습니다. task 나는 일하고있다.

Friend Function listTask() As DataTable 
    Dim dtTasks As New DataTable 
    dtTasks.Columns.Add("NAME") 
    dtTasks.Columns.Add("STATE") 
    dtTasks.Columns.Add("ARGS") 

    Dim service 
    service = CreateObject("Schedule.Service") 
    Call service.Connect() 

    ' Get the task folder that contains the tasks. 
    Dim rootFolder 
    rootFolder = service.GetFolder("\") 

    Dim taskCollection 'As Microsoft.Win32.TaskScheduler.TaskCollection 
    taskCollection = rootFolder.GetTasks(0) 

    Dim numberOfTasks As Integer 
    numberOfTasks = taskCollection.Count 


    If numberOfTasks = 0 Then 
     MsgBox("Não Existem Tarefas") 
    Else 
     Dim count As Integer = 0 
     Dim registeredTask 
     For Each registeredTask In taskCollection 
      'For i = 0 To numberOfTasks - 1 
      Dim taskState As String 
      Select Case registeredTask.State 
       Case "0" 
        taskState = "Unknown" 
       Case "1" 
        taskState = "Disabled" 
       Case "2" 
        taskState = "Queued" 
       Case "3" 
        taskState = "Ready" 
       Case "4" 
        taskState = "Running" 
      End Select 
      'TENHO AQUI TUDO !!!!! 
      Dim aaaa As String = registeredTask.xml 

      Dim BodyDoc As XmlDocument = New XmlDocument() 
      BodyDoc.LoadXml(aaaa) 
      Dim ReaderDoc As XmlNodeReader = New XmlNodeReader(BodyDoc) 

      'TENTAR METER NO DATASET 
      Dim ds As DataSet = New DataSet() 

      ds.ReadXml(ReaderDoc) 
      ReaderDoc.Close() 


      dtTasks.Rows.Add() 
      dtTasks.Rows(count).Item("NAME") = ds.Tables("RegistrationInfo").Rows(0).Item("URI").ToString 
      dtTasks.Rows(count).Item("STATE") = taskState.ToString 
      Dim column As DataColumnCollection = ds.Tables("Exec").Columns 
      If column.Contains("Arguments") Then 
       dtTasks.Rows(count).Item("ARGS") = ds.Tables("Exec").Rows(0).Item("Arguments").ToString 
      Else 
       dtTasks.Rows(count).Item("ARGS") = "" 
      End If 
      count = count + 1 

     Next 
    End If 
    Return dtTasks 

End Function