• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 428
  • 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.
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

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

Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

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