• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 427
  • Last Modified:

Task Scheduler, VS.NET, Perforce Problem


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?

1 Solution
RaymunAuthor Commented:
Also, if I run

p4 sync -f

from the command line or batch it works.
RaymunAuthor Commented:
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.
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

RaymunAuthor Commented:
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?
RaymunAuthor Commented:
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.
RaymunAuthor Commented:
The problem was not a difference in current directory but rather the specified user to run as in Task Scheduler.
Closed, 500 points refunded.
Community Support Moderator
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now