But just to clarify i'm understanding things.. if you manually change your commandline item to start with "c:\program files\jpsoft\tcmd9\tcc.exe" then does it do what you want? OR are you saying that this issue only comes up when D+DR is auto-creating .bat files and launching them (which happens when D+DR sees a commandline that doesnt start with a .exe).
-mouser
The above seems like a too complicated way to do things..
Yes, cmd.exe is ran when creating temporary batch files too..
This is what happens when running a .bat file:
-- Log from Outpost Firewall --
23:48:20 Command line: cmd /c "D:\tmp\test.bat"
23:48:20 Process CMD.EXE started by draganddroprobot.exe
-----------------------------
The "cmd" part of the line above is what I'd like to have changed with the content of the comspec environment variable.
The issue is caused by anything starting "cmd" instead of the designated command processor.
The point is, instead of executing cmd /c "D:\tmp\test.bat" in the example above you would execute "%comspec%" /c "D:\tmp\test.bat".
Comspec in the preceding sentence is still the expanded contents of that variable.
- Take command understands batchfiles perfectly, but cmd doesn't understand the tcc extensions to the language.
you can detect inside a batchfile if it runs under the normal command processor or tcc.
- Using the .btm extension would be option, but would result in D+DR first executing cmd, then tcc, for every single file.
- Starting all commandlines with c:\program files\jpsoft\tcmd9\tcc.exe /c might also work, but makes it less flexible
to change (such as tcc changing path, or the configuration and batchfile is delivered to someone without Take command) than just
the straight forward d:\tmp\test.bat .
Another way to support this, if you want to do it the hard way, is to support this type of command typed into the D+DR commandline:
%VARIABLENAME% parameters or, taken a bit longer
%SYSTEMROOT%\notepad.exe "%HOMEDRIVE%\%HOMEPATH%\test.txt"
It might even be more powerful.
D+DR would then simply expand the variable(s) provided
before interpreting it, then execute.
This way it would still remain flexible, in which you can write %COMSPEC% /c d:\tmp\test.bat, essensially doing the same as I wish for.
But this was just a small suggestion..
@f0dder, Most likely a CreateProcess or ShellExecute of cmd.exe