This may just be noise, but I noticed that you have a path with
backslashes in it. I'm not certain if this applies to ImageJ but many
programs treat backslashes as escape characters. You might try using
forward slashes instead which modern windows can work with fine, and
they don't suffer from needing to do double backslashes.
Rob
On 2/9/2026 9:50 AM, Alan Hewat wrote:
Thanks Fred.
Unfortunately *ImageJ exec() doesn't run Windows .bat files as expected
either :-(*
I have a simple .bat file containing one line, that *executes without error
when I double-click it in Windows*.
"C:\Program Files\SharpCap 4.1 (64 bit)\SharpCap.exe" /language=fr
It launches SharpCap <https://docs.sharpcap.co.uk/4.1/>, a popular imaging
application for astronomers, with a command-line argument that specifies
the language
If instead I execute it within an imageJ script with
status = exec("C:\Program Files\SharpCap 4.1 (64 bit)\SharpCap.exe"
/language=fr);
It launches SharpCap but the in-line argument disables SharpCap's own
IronPython script with a "codepage___0" error.
(It does work without the in-line argument, and I want to input more
complicated arguments than the trivial /language).
Other users have reported similar problems and it was suggested
<https://forums.sharpcap.co.uk/viewtopic.php?t=6762>that the code page or
environment variables may be set differently.
This problem occurs however I try to execute SharpCap with exec(), e.g.
https://wsr.imagej.net/macros/ExecExamples.txt
There is a nice example
<https://imagej.net/ij/macros/tools/VideoCaptureTool.txt> of using exec()
with command-line arguments to record and playback VirtualDub video
That works for me, but doesn't help me understand my problem.
*So is there any other way of launching a Windows process from an imageJ
macro other than exec() ?*
Regards, Alan.
On Mon, 9 Feb 2026 at 05:45, Fred Damen <[email protected]> wrote:
Greetings,,
Generally when I need to run a command line program from within a program
I am writing and the passing of arguments becomes to frustrating (as there
are many layers of retranslating the command syntax), I write a command
line command in the OS(es) native macro language, .bat/.cmd in your case.
Then the only thing that I need to get correct in the calling program is
executing the OS macro command itself - which you seem to have
accomplished.
Enjoy,
Fred
On Sun, February 8, 2026 3:22 am, Alan Hewat wrote:
SharpCap <https://docs.sharpcap.co.uk/4.1/> is a popular astronomical
imaging application and can be launched from a Windows cmd shell with
a command-line
argument <https://docs.sharpcap.co.uk/4.0/34_CommandLineArguments.htm>,
like this:
C:\Users\alanh>"..\\..\\Program Files\\SharpCap 4.1 (64
bit)\\SharpCap.exe"
/runscript d:\\cameraList.py
This correctly launches SharpCap to run a Python script cameraList.py to
list available cameras (or whatever else is requested).
ImageJ has an exec() function
<https://wsr.imagej.net/developer/macro/functions.html#E> that can be
used
to launch applications from an imageJ script. The following launches
SharpCap, but apparently doesn't pass the /runscript argument correctly
because SharpCap scripting reports an error and doesn't work.
SharpCap = getDirectory("startup")+"..\\..\\Program Files\\SharpCap 4.1
(64
bit)\\SharpCap.exe";
status=exec (SharpCap+" /runscript d:\\cameraList.py");
Guided by the exec() function
<https://imagej.net/ij/macros/ExecExamples.txt> examples, I tried
instead:
status=exec("cmd", "/c", "start", SharpCap, " /runscript", "
d:\\cameraList.py" );
but an error that "*Windows can't find /runscript*" is returned as if it
thinks */runscript* is an application.
Replacing */runscript* with the application *SharpCap* as below works,
but
I don't understand why
status=exec("cmd", "/c", "start", SharpCap, SharpCap, " /runscript", "
d:\\cameraList.py" );
That launches SharpCap, and no error is reported, but the script is not
executed.
*The last attempt seems to be close to working, but I must have made some
mistake in the exec() syntax.*
The latest versions of imageJ and Win-11 were used. Any suggestions would
be appreciated. Alan.
--
*_______________________________*
Dr Alan Hewat, NeutronOptics
Grenoble, FRANCE (from computer)
[email protected]
+33.476984168 VAT:FR79499450856
http://NeutronOptics.com/hewat <http://neutronoptics.com/hewat>
_______________________________
--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html