Announcement

Collapse

Forum Guidelines

This forum is for finished source code that is working properly. If you have questions about this or any other source code, please post it in one of the Discussion Forums, not here.
See more
See less

Task Scheduler examples

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Task Scheduler examples

    these examples use the wrapper functions posted in this thread:

    http://www.powerbasic.com/support/pb...ad.php?t=24506

    note
    if you have any comments, please use this thread:
    http://www.powerbasic.com/support/pb...ad.php?t=21275


    Code:
    ' ********************************************************************************************
    ' this example enumerates all the tasks in the scheduled tasks folder of the local computer.
    ' ********************************************************************************************
    
    #compile exe
    #dim all
    #include "win32api.inc"
    #include "iunknown.inc"
    #include "tb_mstsk.inc"
    
    %clsctx_inproc_server = &h1
    
    ' ********************************************************************************************
    ' main
    ' ********************************************************************************************
    function pbmain
    
        local hr as long
        local clsid_ctaskscheduler as guid
        local iid_itaskscheduler as guid
        local pits as dword
        local pienum as dword
        local tasks_to_retrieve as dword
        local dwfetchedtasks as dword
        local rgpwsznames as dword ptr
        local buffer as string
        local bstrlen as long
        local i as long
    
        ' create a task scheduler object
        clsid_ctaskscheduler = guid$("{148bd52a-a2ab-11ce-b11f-00aa00530503}")
        iid_itaskscheduler = guid$("{148bd527-a2ab-11ce-b11f-00aa00530503}")
        hr = cocreateinstance(clsid_ctaskscheduler, byval %null, %clsctx_inproc_server, iid_itaskscheduler, pits)
        if istrue hr or isfalse pits then exit function
    
        ' call itaskscheduler_enum to get an enumeration object
        hr = itaskscheduler_enum(pits, pienum)
        ' release the task scheduler interface
        iunknown_release pits
        ' terminate if itaskscheduler_enum has failed
        if istrue hr or isfalse pienum then exit function
    
        ' call ienumworkitems_next to retrieve tasks. note that
        ' this example tries to retrieve five tasks for each call
    
        tasks_to_retrieve = 5
    
        do
           ' retrieve the tasks
           hr = ienumworkitems_next(pienum, tasks_to_retrieve, rgpwsznames, dwfetchedtasks)
           if isfalse dwfetchedtasks then exit do
           if istrue rgpwsznames then
              for i = 0 to dwfetchedtasks - 1
                 ' extract the name (unicode) and show it
                 bstrlen = lstrlenw(byval @rgpwsznames[i])
                 if istrue bstrlen then
                    buffer = peek$(@rgpwsznames[i], bstrlen * 2)
                    msgbox acode$(buffer)
                 end if
                 ' free the task name
                 cotaskmemfree @rgpwsznames[i]
              next
           end if
        loop
    
        ' release the array
        if istrue rgpwsznames then cotaskmemfree rgpwsznames
    
        ' release the collection
        if istrue pienum then iunknown_release pienum
    
    end function
    ' ********************************************************************************************

    ------------------




    [this message has been edited by josé roca (edited march 04, 2005).]
    Forum: http://www.jose.it-berater.org/smfforum/index.php

    #2
    Code:
    ' ********************************************************************************************
    ' This example creates a single task.
    ' ********************************************************************************************
    
    #Compile Exe
    #Dim All
    #Include "Win32Api.inc"
    #Include "IUnknown.inc"
    #Include "IPersistFile.inc"
    #Include "TB_MSTSK.INC"
    
    %CLSCTX_INPROC_SERVER = &H1
    
    ' ********************************************************************************************
    ' Main
    ' ********************************************************************************************
    FUNCTION PBMAIN
    
        LOCAL hr AS LONG
        LOCAL CLSID_CTaskScheduler AS GUID
        LOCAL IID_ITaskScheduler AS GUID
        LOCAL CLSID_CTask AS GUID
        LOCAL IID_ITask AS GUID
        LOCAL IID_IpersistFile AS GUID
        LOCAL pITS AS DWORD
        LOCAL pITask AS DWORD
        LOCAL pIPersistFile AS DWORD
    
        ' Create a Task Scheduler object
        CLSID_CTaskScheduler = GUID$("{148BD52A-A2AB-11CE-B11F-00AA00530503}")
        IID_ITaskScheduler = GUID$("{148BD527-A2AB-11CE-B11F-00AA00530503}")
        hr = CoCreateInstance(CLSID_CTaskScheduler, BYVAL %NULL, %CLSCTX_INPROC_SERVER, IID_ITaskScheduler, pITS)
        IF ISTRUE hr OR ISFALSE pITS THEN EXIT FUNCTION
    
        ' Call ITaskScheduler_NewWorkItem to create a new task
        CLSID_CTask = GUID$("{148BD520-A2AB-11CE-B11F-00AA00530503}")
        IID_ITask = GUID$("{148BD524-A2AB-11CE-B11F-00AA00530503}")
        hr = ITaskScheduler_NewWorkItem(pITS, "Test Task", CLSID_CTask, IID_ITask, pITask)
        IUnknown_Release pITS
        IF ISTRUE hr THEN
           MSGBOX "Failed calling NewWorkItem, error = " & HEX$(hr)
           EXIT FUNCTION
        END IF
    
        ' Call IUnknown_QueryInterface to get a pointer to IPersistFile
        ' and call IPersistFile_Save to save the new task to disk
        IID_IPersistFile = GUID$("{0000010b-0000-0000-c000-000000000046}")
        hr = IUnknown_QueryInterface(pITask, IID_IpersistFile, pIPersistFile)
        IUnknown_Release pITask
        IF ISTRUE hr THEN
           MSGBOX "Failed calling QueryInterface, error = " & HEX$(hr)
           EXIT FUNCTION
        END IF
        hr = IPersistFile_Save(pIPersistFile, "", %TRUE)
        IUnknown_Release pIPersistFile
        IF ISTRUE hr THEN
           MSGBOX "Failed calling Save, error = " & HEX$(hr)
        ELSE
           MSGBOX "Task created"
        END IF
    
    END FUNCTION
    ' ********************************************************************************************

    ------------------
    Forum: http://www.jose.it-berater.org/smfforum/index.php

    Comment


      #3
      Code:
      ' ********************************************************************************************
      ' This example displays the property pages for a known task, allowing a user edit the
      ' properties of the work item. The example assumes that the task, Test Task, already exists on
      ' the local computer.
      ' ********************************************************************************************
      
      #Compile Exe
      #Dim All
      #Include "Win32Api.inc"
      #Include "IUnknown.inc"
      #Include "TB_MSTSK.INC"
      
      %CLSCTX_INPROC_SERVER = &H1
      
      ' ********************************************************************************************
      ' Main
      ' ********************************************************************************************
      FUNCTION PBMAIN
      
          LOCAL hr AS LONG
          LOCAL CLSID_CTaskScheduler AS GUID
          LOCAL IID_ITaskScheduler AS GUID
          LOCAL IID_ITask AS GUID
          LOCAL pITS AS DWORD
          LOCAL pITask AS DWORD
      
          ' Create a Task Scheduler object
          CLSID_CTaskScheduler = GUID$("{148BD52A-A2AB-11CE-B11F-00AA00530503}")
          IID_ITaskScheduler = GUID$("{148BD527-A2AB-11CE-B11F-00AA00530503}")
          hr = CoCreateInstance(CLSID_CTaskScheduler, BYVAL %NULL, %CLSCTX_INPROC_SERVER, IID_ITaskScheduler, pITS)
          IF ISTRUE hr OR ISFALSE pITS THEN EXIT FUNCTION
      
          ' Call ITaskScheduler_Activate to get the Task object.
          IID_ITask = GUID$("{148BD524-A2AB-11CE-B11F-00AA00530503}")
          hr = ITaskScheduler_Activate(pITS, "Test Task", IID_ITask, pITask)
          IUnknown_Release pITS
          IF ISTRUE hr THEN
             MSGBOX "Failed calling ITaskScheduler_Activate, error = " & HEX$(hr)
             EXIT FUNCTION
          END IF
      
          ' Call ITask_EditWorkItem.
          hr = ITask_EditWorkItem(pITask, %NULL, 0)
          IUnknown_Release pITask
          IF ISTRUE hr THEN
             MSGBOX "Failed calling ITask_EditWorkItem, error = " & HEX$(hr)
             EXIT FUNCTION
          END IF
      
      END FUNCTION
      ' ********************************************************************************************

      ------------------
      Forum: http://www.jose.it-berater.org/smfforum/index.php

      Comment


        #4
        Code:
        ' ********************************************************************************************
        ' This example sets the comment for a known task. The example assumes that the task, Test Task,
        ' already exists on the local computer.
        ' ********************************************************************************************
        
        #Compile Exe
        #Dim All
        #Include "Win32Api.inc"
        #Include "IUnknown.inc"
        #Include "IPersistFile.inc"
        #Include "TB_MSTSK.INC"
        
        %CLSCTX_INPROC_SERVER = &H1
        
        ' ********************************************************************************************
        ' Main
        ' ********************************************************************************************
        FUNCTION PBMAIN
        
            LOCAL hr AS LONG
            LOCAL CLSID_CTaskScheduler AS GUID
            LOCAL IID_ITaskScheduler AS GUID
            LOCAL IID_ITask AS GUID
            LOCAL IID_IpersistFile AS GUID
            LOCAL pITS AS DWORD
            LOCAL pITask AS DWORD
            LOCAL pIPersistFile AS DWORD
        
            ' Create a Task Scheduler object
            CLSID_CTaskScheduler = GUID$("{148BD52A-A2AB-11CE-B11F-00AA00530503}")
            IID_ITaskScheduler = GUID$("{148BD527-A2AB-11CE-B11F-00AA00530503}")
            hr = CoCreateInstance(CLSID_CTaskScheduler, BYVAL %NULL, %CLSCTX_INPROC_SERVER, IID_ITaskScheduler, pITS)
            IF ISTRUE hr OR ISFALSE pITS THEN EXIT FUNCTION
        
            ' Call ITaskScheduler_Activate to get the Task object.
            IID_ITask = GUID$("{148BD524-A2AB-11CE-B11F-00AA00530503}")
            hr = ITaskScheduler_Activate(pITS, "Test Task", IID_ITask, pITask)
            IUnknown_Release pITS
            IF ISTRUE hr THEN
               MSGBOX "Failed calling ITaskScheduler_Activate, error = " & HEX$(hr)
               EXIT FUNCTION
            END IF
        
            ' Call ITask_SetComment to set the comment
            hr = ITask_SetComment(pITask, "This task is used to test the Task Scheduler APIs.")
            IF ISTRUE hr THEN
               MSGBOX "Failed calling ITask_SetComment, error = " & HEX$(hr)
               IUnknown_Release pITask
               EXIT FUNCTION
            END IF
        
            ' Call IPersistFile_Save to save the modified task to disk.
            IID_IPersistFile = GUID$("{0000010b-0000-0000-c000-000000000046}")
            hr = IUnknown_QueryInterface(pITask, IID_IpersistFile, pIPersistFile)
            IUnknown_Release pITask
            IF ISTRUE hr THEN
               MSGBOX "Failed calling QueryInterface, error = " & HEX$(hr)
               EXIT FUNCTION
            END IF
            hr = IPersistFile_Save(pIPersistFile, "", %TRUE)
            IUnknown_Release pIPersistFile
            IF ISTRUE hr THEN
               MSGBOX "Failed calling Save, error = " & HEX$(hr)
            ELSE
               MSGBOX "Set the comment for the Task Test"
            END IF
        
        
        END FUNCTION
        ' ********************************************************************************************

        ------------------
        Forum: http://www.jose.it-berater.org/smfforum/index.php

        Comment


          #5
          Code:
          ' ********************************************************************************************
          ' This example sets the name of the application associated with a known task. The example
          ' assumes that the task, Test Task, already exists on the local computer.
          ' ********************************************************************************************
          
          #Compile Exe
          #Dim All
          #Include "Win32Api.inc"
          #Include "IUnknown.inc"
          #Include "IPersistFile.inc"
          #Include "TB_MSTSK.INC"
          
          %CLSCTX_INPROC_SERVER = &H1
          
          ' ********************************************************************************************
          ' Main
          ' ********************************************************************************************
          FUNCTION PBMAIN
          
              LOCAL hr AS LONG
              LOCAL CLSID_CTaskScheduler AS GUID
              LOCAL IID_ITaskScheduler AS GUID
              LOCAL IID_ITask AS GUID
              LOCAL IID_IpersistFile AS GUID
              LOCAL pITS AS DWORD
              LOCAL pITask AS DWORD
              LOCAL pIPersistFile AS DWORD
          
              ' Create a Task Scheduler object
              CLSID_CTaskScheduler = GUID$("{148BD52A-A2AB-11CE-B11F-00AA00530503}")
              IID_ITaskScheduler = GUID$("{148BD527-A2AB-11CE-B11F-00AA00530503}")
              hr = CoCreateInstance(CLSID_CTaskScheduler, BYVAL %NULL, %CLSCTX_INPROC_SERVER, IID_ITaskScheduler, pITS)
              IF ISTRUE hr OR ISFALSE pITS THEN EXIT FUNCTION
          
              ' Call ITaskScheduler_Activate to get the Task object.
              IID_ITask = GUID$("{148BD524-A2AB-11CE-B11F-00AA00530503}")
              hr = ITaskScheduler_Activate(pITS, "Test Task", IID_ITask, pITask)
              IUnknown_Release pITS
              IF ISTRUE hr THEN
                 MSGBOX "Failed calling ITaskScheduler_Activate, error = " & HEX$(hr)
                 EXIT FUNCTION
              END IF
          
              ' Call ITask_SetApplicationName
              hr = ITask_SetApplicationName(pITask, "notepad.exe")
              IF ISTRUE hr THEN
                 MSGBOX "Failed calling ITask_SetApplicationName, error = " & HEX$(hr)
                 IUnknown_Release pITask
                 EXIT FUNCTION
              END IF
          
              ' Call IPersistFile_Save to save the modified task to disk.
              IID_IPersistFile = GUID$("{0000010b-0000-0000-c000-000000000046}")
              hr = IUnknown_QueryInterface(pITask, IID_IpersistFile, pIPersistFile)
              IUnknown_Release pITask
              IF ISTRUE hr THEN
                 MSGBOX "Failed calling QueryInterface, error = " & HEX$(hr)
                 EXIT FUNCTION
              END IF
              hr = IPersistFile_Save(pIPersistFile, "", %TRUE)
              IUnknown_Release pIPersistFile
              IF ISTRUE hr THEN
                 MSGBOX "Failed calling Save, error = " & HEX$(hr)
              ELSE
                 MSGBOX "Set the application name for the Test Task"
              END IF
          
          
          END FUNCTION
          ' ********************************************************************************************

          ------------------
          Forum: http://www.jose.it-berater.org/smfforum/index.php

          Comment


            #6
            Code:
            ' ********************************************************************************************
            ' This example sets the maximum run time (set in milliseconds) of a known task. The example
            ' assumes that the task, Test Task, already exists on the local computer.
            ' ********************************************************************************************
            
            #Compile Exe
            #Dim All
            #Include "Win32Api.inc"
            #Include "IUnknown.inc"
            #Include "IPersistFile.inc"
            #Include "TB_MSTSK.INC"
            
            %CLSCTX_INPROC_SERVER = &H1
            
            ' ********************************************************************************************
            ' Main
            ' ********************************************************************************************
            FUNCTION PBMAIN
            
                LOCAL hr AS LONG
                LOCAL CLSID_CTaskScheduler AS GUID
                LOCAL IID_ITaskScheduler AS GUID
                LOCAL IID_ITask AS GUID
                LOCAL IID_IpersistFile AS GUID
                LOCAL pITS AS DWORD
                LOCAL pITask AS DWORD
                LOCAL pIPersistFile AS DWORD
            
                ' Create a Task Scheduler object
                CLSID_CTaskScheduler = GUID$("{148BD52A-A2AB-11CE-B11F-00AA00530503}")
                IID_ITaskScheduler = GUID$("{148BD527-A2AB-11CE-B11F-00AA00530503}")
                hr = CoCreateInstance(CLSID_CTaskScheduler, BYVAL %NULL, %CLSCTX_INPROC_SERVER, IID_ITaskScheduler, pITS)
                IF ISTRUE hr OR ISFALSE pITS THEN EXIT FUNCTION
            
                ' Call ITaskScheduler_Activate to get the Task object.
                IID_ITask = GUID$("{148BD524-A2AB-11CE-B11F-00AA00530503}")
                hr = ITaskScheduler_Activate(pITS, "Test Task", IID_ITask, pITask)
                IUnknown_Release pITS
                IF ISTRUE hr THEN
                   MSGBOX "Failed calling ITaskScheduler_Activate, error = " & HEX$(hr)
                   EXIT FUNCTION
                END IF
            
                ' Call ITask_SetMaxRunTime to specify the maximum amount
                ' of time the task will run.
                LOCAL dwMaxRunTime AS DWORD
                dwMaxRunTime = 1000*60*5
                hr = ITask_SetMaxRunTime(pITask, dwMaxRunTime)
                IF ISTRUE hr THEN
                   MSGBOX "Failed calling ITask_SetMaxRunTime, error = " & HEX$(hr)
                   IUnknown_Release pITask
                   EXIT FUNCTION
                END IF
            
                ' Call IPersistFile_Save to save the modified task to disk.
                IID_IPersistFile = GUID$("{0000010b-0000-0000-c000-000000000046}")
                hr = IUnknown_QueryInterface(pITask, IID_IpersistFile, pIPersistFile)
                IUnknown_Release pITask
                IF ISTRUE hr THEN
                   MSGBOX "Failed calling QueryInterface, error = " & HEX$(hr)
                   EXIT FUNCTION
                END IF
                hr = IPersistFile_Save(pIPersistFile, "", %TRUE)
                IUnknown_Release pIPersistFile
                IF ISTRUE hr THEN
                   MSGBOX "Failed calling Save, error = " & HEX$(hr)
                ELSE
                   MSGBOX "The maximum run time is set to 5 minutes."
                END IF
            
            
            END FUNCTION
            ' ********************************************************************************************

            ------------------
            Forum: http://www.jose.it-berater.org/smfforum/index.php

            Comment


              #7
              Code:
              ' ********************************************************************************************
              ' This example clears all command line parameters associated with a known task. The example
              ' assumes that the task, Test Task, already exists on the local computer.
              ' ********************************************************************************************
              
              #Compile Exe
              #Dim All
              #Include "Win32Api.inc"
              #Include "IUnknown.inc"
              #Include "IPersistFile.inc"
              #Include "TB_MSTSK.INC"
              
              %CLSCTX_INPROC_SERVER = &H1
              
              ' ********************************************************************************************
              ' Main
              ' ********************************************************************************************
              FUNCTION PBMAIN
              
                  LOCAL hr AS LONG
                  LOCAL CLSID_CTaskScheduler AS GUID
                  LOCAL IID_ITaskScheduler AS GUID
                  LOCAL IID_ITask AS GUID
                  LOCAL IID_IpersistFile AS GUID
                  LOCAL pITS AS DWORD
                  LOCAL pITask AS DWORD
                  LOCAL pIPersistFile AS DWORD
              
                  ' Create a Task Scheduler object
                  CLSID_CTaskScheduler = GUID$("{148BD52A-A2AB-11CE-B11F-00AA00530503}")
                  IID_ITaskScheduler = GUID$("{148BD527-A2AB-11CE-B11F-00AA00530503}")
                  hr = CoCreateInstance(CLSID_CTaskScheduler, BYVAL %NULL, %CLSCTX_INPROC_SERVER, IID_ITaskScheduler, pITS)
                  IF ISTRUE hr OR ISFALSE pITS THEN EXIT FUNCTION
              
                  ' Call ITaskScheduler_Activate to get the Task object.
                  IID_ITask = GUID$("{148BD524-A2AB-11CE-B11F-00AA00530503}")
                  hr = ITaskScheduler_Activate(pITS, "Test Task", IID_ITask, pITask)
                  IUnknown_Release pITS
                  IF ISTRUE hr THEN
                     MSGBOX "Failed calling ITaskScheduler_Activate, error = " & HEX$(hr)
                     EXIT FUNCTION
                  END IF
              
                  ' Call ITask_SetPriority to specify the priority level of Test Task.
                  hr = ITask_SetPriority(pITask, %HIGH_PRIORITY_CLASS)
                  IF ISTRUE hr THEN
                     MSGBOX "Failed calling ITask_SetPriority, error = " & HEX$(hr)
                     IUnknown_Release pITask
                     EXIT FUNCTION
                  END IF
              
                  ' Call IPersistFile_Save to save the modified task to disk.
                  IID_IPersistFile = GUID$("{0000010b-0000-0000-c000-000000000046}")
                  hr = IUnknown_QueryInterface(pITask, IID_IpersistFile, pIPersistFile)
                  IUnknown_Release pITask
                  IF ISTRUE hr THEN
                     MSGBOX "Failed calling QueryInterface, error = " & HEX$(hr)
                     EXIT FUNCTION
                  END IF
                  hr = IPersistFile_Save(pIPersistFile, "", %TRUE)
                  IUnknown_Release pIPersistFile
                  IF ISTRUE hr THEN
                     MSGBOX "Failed calling Save, error = " & HEX$(hr)
                  ELSE
                     MSGBOX "Set the priority of TestTask to HIGH_PRIORITY_CLASS."
                  END IF
              
              
              END FUNCTION
              ' ********************************************************************************************

              ------------------
              Forum: http://www.jose.it-berater.org/smfforum/index.php

              Comment


                #8
                Code:
                ' ********************************************************************************************
                ' This example sets the working directory of a known task. The example assumes that the task,
                ' Test Task, already exists on the local computer.
                ' ********************************************************************************************
                
                #Compile Exe
                #Dim All
                #Include "Win32Api.inc"
                #Include "IUnknown.inc"
                #Include "IPersistFile.inc"
                #Include "TB_MSTSK.INC"
                
                %CLSCTX_INPROC_SERVER = &H1
                
                ' ********************************************************************************************
                ' Main
                ' ********************************************************************************************
                FUNCTION PBMAIN
                
                    LOCAL hr AS LONG
                    LOCAL CLSID_CTaskScheduler AS GUID
                    LOCAL IID_ITaskScheduler AS GUID
                    LOCAL IID_ITask AS GUID
                    LOCAL IID_IpersistFile AS GUID
                    LOCAL pITS AS DWORD
                    LOCAL pITask AS DWORD
                    LOCAL pIPersistFile AS DWORD
                
                    ' Create a Task Scheduler object
                    CLSID_CTaskScheduler = GUID$("{148BD52A-A2AB-11CE-B11F-00AA00530503}")
                    IID_ITaskScheduler = GUID$("{148BD527-A2AB-11CE-B11F-00AA00530503}")
                    hr = CoCreateInstance(CLSID_CTaskScheduler, BYVAL %NULL, %CLSCTX_INPROC_SERVER, IID_ITaskScheduler, pITS)
                    IF ISTRUE hr OR ISFALSE pITS THEN EXIT FUNCTION
                
                    ' Call ITaskScheduler_Activate to get the Task object.
                    IID_ITask = GUID$("{148BD524-A2AB-11CE-B11F-00AA00530503}")
                    hr = ITaskScheduler_Activate(pITS, "Test Task", IID_ITask, pITask)
                    IUnknown_Release pITS
                    IF ISTRUE hr THEN
                       MSGBOX "Failed calling ITaskScheduler_Activate, error = " & HEX$(hr)
                       EXIT FUNCTION
                    END IF
                
                    ' Call ITask_SetWorkingDirectory to specify the current
                    ' working directory for Test Task.
                    hr = ITask_SetWorkingDirectory(pITask, "C:\Temp")
                    IF ISTRUE hr THEN
                       MSGBOX "Failed calling ITask_SetWorkingDirectory, error = " & HEX$(hr)
                       IUnknown_Release pITask
                       EXIT FUNCTION
                    END IF
                
                    ' Call IPersistFile_Save to save the modified task to disk.
                    IID_IPersistFile = GUID$("{0000010b-0000-0000-c000-000000000046}")
                    hr = IUnknown_QueryInterface(pITask, IID_IpersistFile, pIPersistFile)
                    IUnknown_Release pITask
                    IF ISTRUE hr THEN
                       MSGBOX "Failed calling QueryInterface, error = " & HEX$(hr)
                       EXIT FUNCTION
                    END IF
                    hr = IPersistFile_Save(pIPersistFile, "", %TRUE)
                    IUnknown_Release pIPersistFile
                    IF ISTRUE hr THEN
                       MSGBOX "Failed calling Save, error = " & HEX$(hr)
                    ELSE
                       MSGBOX "Set the working directory to C:\Temp"
                    END IF
                
                
                END FUNCTION
                ' ********************************************************************************************

                ------------------
                Forum: http://www.jose.it-berater.org/smfforum/index.php

                Comment


                  #9
                  Code:
                  ' ********************************************************************************************
                  ' This example retrieves the name of the application associated with a given task, then
                  ' displays that name on the screen. The example assumes that the task, Test Task, already
                  ' exists on the local computer.
                  ' ********************************************************************************************
                  
                  #Compile Exe
                  #Dim All
                  #Include "Win32Api.inc"
                  #Include "IUnknown.inc"
                  #Include "TB_MSTSK.INC"
                  
                  %CLSCTX_INPROC_SERVER = &H1
                  
                  ' ********************************************************************************************
                  ' Main
                  ' ********************************************************************************************
                  FUNCTION PBMAIN
                  
                      LOCAL hr AS LONG
                      LOCAL CLSID_CTaskScheduler AS GUID
                      LOCAL IID_ITaskScheduler AS GUID
                      LOCAL IID_ITask AS GUID
                      LOCAL pITS AS DWORD
                      LOCAL pITask AS DWORD
                  
                      ' Create a Task Scheduler object
                      CLSID_CTaskScheduler = GUID$("{148BD52A-A2AB-11CE-B11F-00AA00530503}")
                      IID_ITaskScheduler = GUID$("{148BD527-A2AB-11CE-B11F-00AA00530503}")
                      hr = CoCreateInstance(CLSID_CTaskScheduler, BYVAL %NULL, %CLSCTX_INPROC_SERVER, IID_ITaskScheduler, pITS)
                      IF ISTRUE hr OR ISFALSE pITS THEN EXIT FUNCTION
                  
                      ' Call ITaskScheduler_Activate to get the Task object.
                      IID_ITask = GUID$("{148BD524-A2AB-11CE-B11F-00AA00530503}")
                      hr = ITaskScheduler_Activate(pITS, "Test Task", IID_ITask, pITask)
                      IUnknown_Release pITS
                      IF ISTRUE hr THEN
                         MSGBOX "Failed calling ITaskScheduler_Activate, error = " & HEX$(hr)
                         EXIT FUNCTION
                      END IF
                  
                      ' Call ITask_GetApplicationName to display the name of the
                      ' application associated with "Test Task".
                      LOCAL strApplicationName AS STRING
                      hr = ITask_GetApplicationName(pITask, strApplicationName)
                      IUnknown_Release pITask
                      IF ISTRUE hr THEN
                         MSGBOX "Failed calling ITask_GetApplicationName, error = " & HEX$(hr)
                      ELSE
                         MSGBOX strApplicationName
                      END IF
                  
                  END FUNCTION
                  ' ********************************************************************************************

                  ------------------
                  Forum: http://www.jose.it-berater.org/smfforum/index.php

                  Comment


                    #10
                    Code:
                    ' ********************************************************************************************
                    ' This example retrieves the working directory associated with a task, then displays the path
                    ' to the working directory on the screen. The example assumes that the task, Test Task,
                    ' already exists on the local computer.
                    ' ********************************************************************************************
                    
                    #Compile Exe
                    #Dim All
                    #Include "Win32Api.inc"
                    #Include "IUnknown.inc"
                    #Include "TB_MSTSK.INC"
                    
                    %CLSCTX_INPROC_SERVER = &H1
                    
                    ' ********************************************************************************************
                    ' Main
                    ' ********************************************************************************************
                    FUNCTION PBMAIN
                    
                        LOCAL hr AS LONG
                        LOCAL CLSID_CTaskScheduler AS GUID
                        LOCAL IID_ITaskScheduler AS GUID
                        LOCAL IID_ITask AS GUID
                        LOCAL pITS AS DWORD
                        LOCAL pITask AS DWORD
                    
                        ' Create a Task Scheduler object
                        CLSID_CTaskScheduler = GUID$("{148BD52A-A2AB-11CE-B11F-00AA00530503}")
                        IID_ITaskScheduler = GUID$("{148BD527-A2AB-11CE-B11F-00AA00530503}")
                        hr = CoCreateInstance(CLSID_CTaskScheduler, BYVAL %NULL, %CLSCTX_INPROC_SERVER, IID_ITaskScheduler, pITS)
                        IF ISTRUE hr OR ISFALSE pITS THEN EXIT FUNCTION
                    
                        ' Call ITaskScheduler_Activate to get the Task object.
                        IID_ITask = GUID$("{148BD524-A2AB-11CE-B11F-00AA00530503}")
                        hr = ITaskScheduler_Activate(pITS, "Test Task", IID_ITask, pITask)
                        IUnknown_Release pITS
                        IF ISTRUE hr THEN
                           MSGBOX "Failed calling ITaskScheduler_Activate, error = " & HEX$(hr)
                           EXIT FUNCTION
                        END IF
                    
                        ' Call ITask::GetWorkingDirectory to display the working
                        ' directory associated with "Test Task".
                        LOCAL strWorkingDirectory AS STRING
                        hr = ITask_GetWorkingDirectory(pITask, strWorkingDirectory)
                        IUnknown_Release pITask
                        IF ISTRUE hr THEN
                           MSGBOX "Failed calling ITask_GetWorkingDirectory, error = " & HEX$(hr)
                        ELSE
                           MSGBOX strWorkingDirectory
                        END IF
                    
                    END FUNCTION
                    ' ********************************************************************************************

                    ------------------
                    Forum: http://www.jose.it-berater.org/smfforum/index.php

                    Comment

                    Working...
                    X
                    😀
                    🥰
                    🤢
                    😎
                    😡
                    👍
                    👎