Johan Lindstrom wrote:
> Jeremy Aiyadurai wrote:
> >how do i get an icon to work for a console window...eg. i want to get rid
> >of the console-window-dos-prompt icon when i run my console program.
>
> Untested, but try something like this:
>
> my $icoDOS = ... create your icon object here ...;
> my $hwindDOS = Win32::GUI::GetPerlWindow();
> Win32::GUI::SetIcon($hwindDOS, $icoDOS, 0);
The above should work (I recently tried it) but it even removes the command
prompt if you type perl yourprogram.pl in the command window. Another way I
use is the following batch file, starting a perl script which creates
another process. This example works with Perl/Tk, too. Try it and use your
favourite method :-)
--- cut here and save it in a file like myprogram.bat ---
@rem = '--*-Perl-*--
@echo off
if "%OS%" == "Windows_NT" goto WinNT
perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
goto endofperl
:WinNT
perl -x -S "%0" %*
if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
if %errorlevel% == 9009 echo You do not have Perl in your PATH.
goto endofperl
@rem ';
#!perl
#line 14
# Starts a perl script without console window
use strict;
use Win32;
use Win32::Process;
#---------------------------------------------------------------------------
# main
findPerl();
Win32::Process::Create($Win32::Proccess::Create::ProcessObj,
findPerl(),
'perl yourprogram.pl',
0,
DETACHED_PROCESS,
".") or die print_error();
sub print_error {
return Win32::FormatMessage(Win32::GetLastError());
}
#---------------------------------------------------------------------------
# sub
sub findPerl {
foreach my $path (split(/;/, $ENV{PATH})) {
if (-e "$path\\perl.exe") {
return "$path\\perl.exe";
}
}
}
__END__
:endofperl
--- cut here ---
Peter
http://www.metaprojekt.de