Raymun
asked on
Task Scheduler, VS.NET, Perforce Problem
Hello,
I am having problems running an executable from Task Scheduler from one particular machine. The executable was created using VC++ and contains the code:
system( "p4 sync -f" );
Now the problem is when I execute from Task Scheduler, that line of code is skipped. If I run the executable in any other way it runs fine. That is, it runs fine when I double-click it, run it from the command line, run a batch file which calls that executable, etc etc. Only running from Task Scheduler I get problems. I need this executable to run at timed intervals without human intervention.
The weird thing is, I have the executable running fine from Task Scheduler on two other machines (same OS, same everything except hardware). I compared the VS properties in the working machines to that of the faulty machine and everything is the same.
What's going on here?
I am having problems running an executable from Task Scheduler from one particular machine. The executable was created using VC++ and contains the code:
system( "p4 sync -f" );
Now the problem is when I execute from Task Scheduler, that line of code is skipped. If I run the executable in any other way it runs fine. That is, it runs fine when I double-click it, run it from the command line, run a batch file which calls that executable, etc etc. Only running from Task Scheduler I get problems. I need this executable to run at timed intervals without human intervention.
The weird thing is, I have the executable running fine from Task Scheduler on two other machines (same OS, same everything except hardware). I compared the VS properties in the working machines to that of the faulty machine and everything is the same.
What's going on here?
ASKER
Also something that might be of interest:
When the .exe is running in the working machines (regardless of whether its from double-clicking or Task Scheduler), the console is displayed. When running from the faulty machine, it isn't. The only way I know it's running is if I look in Task Manager or if I observe the changes that Perforce is making.
When the .exe is running in the working machines (regardless of whether its from double-clicking or Task Scheduler), the console is displayed. When running from the faulty machine, it isn't. The only way I know it's running is if I look in Task Manager or if I observe the changes that Perforce is making.
system() calls COMMAND.COM (CMD.EXE under NT) to execute the specified argument. I suspect that, depending on OS, one, or both, is not being found.
Look at the default PATH, then in the indicated directories for those two programs.
If found, check for execution rights.
Look at the default PATH, then in the indicated directories for those two programs.
If found, check for execution rights.
ASKER
I'm able to call cmd.exe from the run prompt so I don't think that's the problem.
Have the Task Scheduler call the batch file that works?? lol...
Maybe difference is in current directory?
ASKER
OK I finally solved this problem. In order to make a change in Task Scheduler, you need to run the called app as some user with a password. I was running it as a user different from the currently logged in user. All I did was change the user to the logged in one and everything was magically fine. The code ran and the console showed while doing it. yay!
There are two pointers to this thread. Please delete them.
There are two pointers to this thread. Please delete them.
ASKER
The problem was not a difference in current directory but rather the specified user to run as in Task Scheduler.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
p4 sync -f
from the command line or batch it works.