There are a couple of suggestions that you may wanna look into. Take a look at these two links: Win32-Gui-HowTo and Gui scripts. Both have some good ideas.
- Moon | [reply] |
It's not possible to do it without launching the command prompt. You can hide the command prompt immediately after the GUI is launched, but it still needs to be there for a second.
There are a couple of ways of doing this. First off, with Win32::Gui you can use something like:
my ($dos) = Win32::GUI::GetPerlWindow();
Win32::GUI::Hide($dos);
That you can use within the application and it will hide the DOS window/command prompt almost immediately.
And I've used the following to perform the same function in TK, though this is a "wrapper" program to launch a program and it exits. So, this program runs in a command prompt, which exits, and launches a new perl interpreter that does not open a command prompt.
#!/usr/bin/perl -w
# loader - starts Perl scripts without the annoying DOS window
use strict;
use Win32;
use Win32::Process;
# Create the process object.
Win32::Process::Create($Win32::Process::Create::ProcessObj,
'C:/perl5/bin/perl.exe', # Whereabouts of Perl
'perl realprogram', #
0, # Don't inherit.
DETACHED_PROCESS, #
".") or # current dir.
die print_error();
sub print_error() {
return Win32::FormatMessage( Win32::GetLastError() );
}
The second example is word for word from the O'Reilly cookbook, section 15.17
And lastly, if you are using ActiveState perl, you can probably use wPerl.exe to launch the app (instead of just perl.exe) and that should do the trick. | [reply] [d/l] [select] |
| [reply] |
If you're using ActivePerl, it comes with wperl.exe. You can associate another file extension with wperl.exe and it won't launch a command window. As far as associating the extension, look at the ActivePerl help files (if you're using ActivePerl).
Hope this helps,
Rich | [reply] |
This probably isn't what you're looking for, but you can get the command prompt to start up minimized so that it's at least out of the way - which is what I do.
1) make a batch file to call perl and the program - put it anywhere you want.
2) make a shortcut to the batch file
3) in the properties of the shortcut, set the "Run" option to minimized. You can change the icon too. The prompt is still there, but out of the way. Maybe not the best method, but it doesn't take much effort. | [reply] |
What is the commandline in the icon?
You should be able to fire off perl directly as "perl -w MyApp". That way there is no cmd related functions happening
"Nothing is sure but death and taxes" I say combine the two and its death to all taxes! | [reply] |