Link to home
Start Free TrialLog in
Avatar of Raymun
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?

Avatar of Raymun
Raymun

ASKER

Also, if I run

p4 sync -f

from the command line or batch it works.
Avatar of Raymun

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.
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.
Avatar of Raymun

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?
Avatar of Raymun

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.
Avatar of Raymun

ASKER

The problem was not a difference in current directory but rather the specified user to run as in Task Scheduler.
ASKER CERTIFIED SOLUTION
Avatar of CetusMOD
CetusMOD
Flag of Netherlands image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial