On 05/11/07 14:44, Glynn Clements wrote:
If yes, I'll just include a standard link into the
distribution, inviting people to copy it to the desktop. This link can
also be configured to minimize the cmd window which would solve that
problem.
Actually it doesn't. If your .grassrc6 is configured to start grass in
text mode, minimizing the window via the link does not allow you to see
the terminal window...
So, again, the best solution seems to be two different .bat files for
gui and text startup (also see below).
The GUI should probably be started via a .bat file which uses the
"start" command with the option to hide the console window. The
console window won't appear unless something is written to
stdout/stderr (and they aren't redirected).
It actually appears as soon as you launch any .bat file.
The "start" command has a flag to hide the console window.
That is what Benjamin and I suggested to use. However, Paul is right
that we currenly need a cmd session to remain open in order to do the
clean up work at the end. And whichever way I turn the issue, I haven't
been able to find a satisfying solution, yet. For more details, see
towards the end of
http://grass.itc.it/pipermail/grass5/2007-November/033889.html - from
"Yes. I had forgotten about all that")
Is it not possible to "start" a batch file which runs gis.m in the
foreground then deletes the files when it terminates? Or does that
still open a console window?
Yes, that is actually the "definition" of start (from
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/start.mspx?mfr=true):
"Starts a separate Command Prompt window to run a specified program or
command."
There is a flag /min to minimize this new window. There is also a flag
/b ("Starts an application without opening a new Command Prompt
window"). This opens the application in the current window...
But the problem is not launching gis.m without a terminal. That's quite
easy. The problem is that launching grass63.bat automatically opens a
terminal and that it is difficult to get rid of that, unless we follow
your suggestion and have different .bat files for launching grass with
or without gui.
As I wrote in the mail mentioned above:
One option would be to use the start command in grass63.bat, such as:
start /min cmd /c "%WINGISBASE%\etc\init.bat" %*
It spawns a new minimized cmd.exe which then runs init.bat. This works
great for GUI startup, but when you launch grass63.bat -text, you have the
incovenience of a) another cmd window open for grass and b) you have to
maximize the window to be able to enter grass. And since the 'text' option
can come from the .grassrc6 file, we cannot count on a '-text' parameter
being available in grass63.bat.
So, if we use two different grass63.bat files (or we parse the command
line and .grassrc6 in grass63.bat), this option seems the easiest. It
actually opens a cmd.exe window but this is minimized and so you only
see it in the task bar (would be great to be able to get rid of that as
well, but that should be acceptable - don't know if it is possible to
hide a program from the task bar).
One option would be to create a gui launching script in another language
(i.e. C, tcl, etc) so that it doesn't automatically provoke the launch
of a cmd window.
Moritz
_______________________________________________
grass-dev mailing list
grass-dev@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass-dev