Windows Perl (icon v command line)
drkjam
drkjam at dsl.pipex.com
Mon Dec 12 10:05:16 GMT 2005
Alternatively, you could always test for the presence of the PROMPT
environment variable. This is inherited by any app started via the cmd
shell. I get the feeling this would also be the case for anything run
via command.exe but you'd have to test it as I don't have access to a
box with that rather lovely OS running on it anymore.
HTH,
David Moss
John Costello wrote:
>On Sun, 11 Dec 2005, Robert Rothenberg wrote:
>
>
>>On 12/09/2005 10:02 AM Steve Mynott wrote:
>>
>>
>>
>>>But I was wondering, and I guess this is more a windows question than
>>>perl, if anyone knew of a simple way on Windows of knowing whether the
>>>exe had been ran as an icon or via a cmd.exe box?
>>>
>>>
>>I no longer use Windows, but I believe you can check the existence of
>>certain environment variables that are instantiated when you are in the
>>CMD shell.
>>
>>
>
>You ought to check for three situations, depending on what OS versions
>you plan to run your program. They are:
>
>- CMD
>- COMMAND
>- GUI
>
>COMMAND emulates DOS mode and does not support long filenames, among other
>oddities.
>
>CMD sets an environment variable "ComSpec" which on this XP system is set
>to "C:\Windows\system32\cmd.exe". COMMAND sets "ComSpec" to
>C:\WINDOWS\SYSTEM32\COMMAND.COM.
>
>Since the system path may not be the same on all versions of Windows
>(might be \WinNT instead of \Windows), I'd evaluate $ENV{'ComSpec'} for
>the executable (cmd.exe, command.com) alone. A case-insensitive match
>would be a safe bet.
>
>I don't know if "ComSpec" exists in the Win95/98/ME OS line.
>
>Before you go to far down the ComSpec path, I'd check to see what the
>value is set to when a GUI program is run.
>
>The 'SESSIONNAME' variable looked promising for a second (it says
>"Console" on my local box, leading me to think that it would distinguish
>between command and GUI), but on an RDP session it is set to "RDP-Tcp#18"
>which isn't that helpful to you.
>
>
>
>>I also recall there being a module on CPAN which uses this method to
>>determine if it should pause when a program halts or not.
>>
>>
>
>-----
>John Costello - cos at indeterminate dot net
>"You cannot propel yourself forward by patting yourself on the back."--Unknown
>
>
>
>
More information about the london.pm
mailing list