On Windows there are multiple ways to run a program and suppress a Window.

I usually run the program from a shortcut that is set to "Minimize" by default.

That way it just shows up as an icon on the task bar instead of a console 
Window.

This site walks through multiple ways to run any Windows app with no Window.

https://www.winhelponline.com/blog/run-bat-files-invisibly-without-displaying-command-prompt/


If you want to do it using the Perl program itself then you can use the 
Win32::GUI package.

In your code test for the operating system and on Windows have a command line 
option to hide the Window.

This program will hide its own console on Windows. The console will flash 
briefly on the screen and then hide. I usually start an app like this using a 
shortcut that starts minimized. That way there is an icon that briefly shows up 
on the task bar and disappears while the program continues to run.

use warnings;

use strict;

use Win32::GUI;

my $console = Win32::GUI::GetPerlWindow();

Win32::GUI::Hide($console);

system ('timeout 10');


keith



-- 

Keith R. Watson GCIH                   Georgia Institute of Technology
Information Security Engineer Lead     College of Computing
keith.wat...@cc.gatech.edu             801 Atlantic Drive NW
(404) 385-7401                         Atlanta, GA 30332-0280


> -----Original Message-----
> From: Roderich Schupp <roderich.sch...@gmail.com>
> Sent: Friday, April 24, 2020 09:18
> To: Johan Vromans <jvrom...@squirrel.nl>
> Cc: par@perl.org
> Subject: Re: Multiple entry points (MS Windows)
> 
> On Fri, Apr 24, 2020 at 2:36 PM Johan Vromans <jvrom...@squirrel.nl
> <mailto:jvrom...@squirrel.nl> > wrote:
> 
> 
>       But on Windows it matters whether the program is built with --gui or
> not.
>       If I build with --gui invoking the command line version will make
> all
>       terminal output disappear. If built without --gui the GUI invokation
> will
>       show a nasty terminal window...
> 
>       Is there an elegant solution?
> 
> 
> 
> AFAICS no. --gui sets a bit in the generated Windows executable, so it's
> not modifiable at runtime.
> 
> Cheers, Roderich

Reply via email to