Page 1 of 1

Posted: Sun Mar 04, 2007 6:03 pm
by Sparkie
This does not create a .job file but it does create a new task. I have not had any success using NetScheduleJobAdd_() but I have had success with using AT commands. This code will set a task to start Windows Calculator in ~1 minute from runtime. Also, Task Scheduler must be running for this to work and I don't know of anyway of getting around that. If a user doesn't want Task Scheduler enabled, we should honor and respect that in our code. ;)

Code: Select all

; For more info...
; http://support.microsoft.com/kb/313565
; This adds a task to run Windows Calculator one time only within the next minute
; Allow extra processing time if clock time is about to change to the next minute
; otherwise the task will wait 24 hours
If Second(Date()) > 55
  runtime$ = FormatDate("%hh:%ii", AddDate(Date(), #PB_Date_Minute, 2))
Else
  runtime$ = FormatDate("%hh:%ii", AddDate(Date(), #PB_Date_Minute, 1))
EndIf
runProg = RunProgram("cmd", "/c at " + runtime$ + " /interactive calc.exe", "", #PB_Program_Hide | #PB_Program_Open)
result = WaitProgram(runProg)
If ProgramExitCode(runProg) <> 0
  MessageRequester("Error", "Unable to process command." + #crlf$ + "Check to make sure Task Scheduler is running.", #MB_OK | #MB_ICONERROR)
Else
  MessageRequester("Success", "New task has been set to run at " + runtime$, #MB_OK | #MB_ICONINFORMATION)
EndIf
CloseProgram(runProg)

Posted: Sun Mar 04, 2007 6:22 pm
by Kaeru Gaman
Sparkie wrote:Also, Task Scheduler must be running for this to work and I don't know of anyway of getting around that.
I think there is no way to do without, because there must be an Application
that checks for scheduled tasks and start them when their time has come.
it is no native function of the OS.
ok, so read that what you find behind the Links.
when you've learned how a JOB-file is constructed and where it has to be placed
and wich apps must be running etc etc
you could write an editor/creator in PB that creates JOB files using the File commands
and places it in the right place to have it run at proper time.

Posted: Sun Mar 04, 2007 11:00 pm
by oridan
Sparkie wrote:This does not create a .job file but it does create a new task. I have not had any success using NetScheduleJobAdd_() but I have had success with using AT commands. This code will set a task to start Windows Calculator in ~1 minute from runtime. Also, Task Scheduler must be running for this to work and I don't know of anyway of getting around that. If a user doesn't want Task Scheduler enabled, we should honor and respect that in our code. ;)

Code: Select all

; For more info...
; http://support.microsoft.com/kb/313565
; This adds a task to run Windows Calculator one time only within the next minute
; Allow extra processing time if clock time is about to change to the next minute
; otherwise the task will wait 24 hours
If Second(Date()) > 55
  runtime$ = FormatDate("%hh:%ii", AddDate(Date(), #PB_Date_Minute, 2))
Else
  runtime$ = FormatDate("%hh:%ii", AddDate(Date(), #PB_Date_Minute, 1))
EndIf
runProg = RunProgram("cmd", "/c at " + runtime$ + " /interactive calc.exe", "", #PB_Program_Hide | #PB_Program_Open)
result = WaitProgram(runProg)
If ProgramExitCode(runProg) <> 0
  MessageRequester("Error", "Unable to process command." + #crlf$ + "Check to make sure Task Scheduler is running.", #MB_OK | #MB_ICONERROR)
Else
  MessageRequester("Success", "New task has been set to run at " + runtime$, #MB_OK | #MB_ICONINFORMATION)
EndIf
CloseProgram(runProg)
Thanks Sparkie, you found to alternatives good and works perfectly,
and this you code creates a true file job in the folder \WINDOWS\TASKS.

Thanks very much. :D

Posted: Mon Mar 05, 2007 12:36 am
by Sparkie
You're welcome oridan :)