home *** CD-ROM | disk | FTP | other *** search
- Overview:
- SA.EXE is sample code that demonstrates the new scheduling agent API
- provided with installation of the Scheduling Agent package; complete
- documentation describing the interfaces is available elsewhere in the
- ActiveX SDK. The sample mimics the functionality of the AT command
- through the Scheduling Agent APIs, as opposed to the NetSchedule API
- used by AT. This sample implements only a small subset of the AT
- command set, but should be easily extensible.
-
- Usage:
- sa - Show All Tasks
- sa /? - Display Help
- sa JobName.job /DELETE - delete job
- sa JobName.job Time Command [UserName [Password]] - submit a job
-
- Job Time is in 24 hour format (such as 15:30) and is the next instance
- of this specific time within 24 hours.
-
- Command is the name of the application to run. Path names may be included.
- However, spaces are not allowed in the path name, so an application residing
- in C:\program files\foo.exe should be specified as C:\progra~1\foo.exe,
- using the old-style 8.3 filenames. Should any command line parameters
- be required, enclose the entire Command string in quotes:
- "c:\progra~1\foo.exe /bar 5"
-
- Username and password are required to run the specified task under Windows NT.
- Under Windows NT, if they are not specified as part of the command line,
- a prompt for the missing data will be displayed. Under Windows 95,
- both fields are ignored, if specified. Regardless of specification,
- under Windows 95, no prompt will be displayed.
-
- Error Reporting:
- The program performs error checking within the code over the parameters
- passed in. Any errors are returned as the exit value of "main", which may
- be read by checking the environmental value %ERRORLEVEL% under Windows NT,
- or the corresponding variable in Windows 95.
-
- Additional Notes:
- The program makes use of the following interfaces and methods:
-
- 1. ISchedulingAgent::Enum
- ISchedulingAgent::Activate
- ISchedulingAgent::Delete
- ISchedulingAgent::NewTask
-
- 2. IEnumTasks::Next
-
- 3. ITask::GetTriggerCount
- ITask::GetTriggerString
- ITask::SetAccountInformation
- ITask::SetApplicationName
- ITask::SetParameters
- ITask::SetComment
- ITask::SetFlags
- ITask::CreateTrigger
-
- 4. ITaskTrigger::SetTrigger
-
- In addition, various methods on IUnknown and IPersistFile are called.
- It is assumed that a user of this code has familiarity with those
- interfaces and calling conventions.
-
- The output of the program is one of four possibilities:
-
- First, and most obviously, is the presentation of a help file. This
- case occurs from command line arguments requesting help, or from input
- parameter lists that are longer than the expected range. Output is to
- stdout.
-
- Second, the program can enumerate all task objects in the tasks folder.
- Output is provided to stdout, and consists of a line containing
- "Job: filename.job" followed by indented lines containing strings of the
- type "Trigger: text representation of trigger values". Empty task folders
- cause no output.
-
- Third, the program can delete jobs from the job folder. This action
- will fail in a secure environment (Windows NT on an NTFS partition) if
- the caller does not have permissions to remove the file. Deletion
- of tasks is not limited to those that were created from this program.
- If the deletion succeeds, no output is displayed.
-
- Finally, the program can add a task from the command line. If the
- scheduling agent is to recognize the task, the filename (jobname.job)
- given MUST have the extension ".job" on it. Otherwise, it will fail
- to be enumerated from this tool, the task scheduler, or anywhere else.
- In addition, that task will fail to run if ".job" is not the file
- extension. If the addition succeeds, no output is displayed.
-
- The task type that is created has a single trigger of type "ONCE"
- and is limited to running within the next 24 hours. Also, like AT,
- these jobs will be deleted upon completion of their run. For
- creation of other types of triggers, please consult the documentation
- for the TASK_TRIGGER structure.
-
-