Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Perl > Perl Misc > Progress bar under Windows XP/Activestate Perl

Reply
Thread Tools

Progress bar under Windows XP/Activestate Perl

 
 
George
Guest
Posts: n/a
 
      03-04-2006
After months of hard work, I have finished my perl program while, at
the same time, reading perldoc.

I am running Windows XP (SP2), ActiveState Perl v5.8.7. My program is
about 2000 lines long and it starts with "use strict; use warnings;..."
(it does not have the #!perl-shebang-line, though).

It reads in more than 100 megs of plain text-data, moves most of the
data into a scalar, some into hashes, other into arrays, sorts them,
rings all sorts of bells and blows the occasional whistle as it goes
along, before it creates about 500 megs worth of Html, distributed
(more or less) evenly over 2000 output files.

It takes 30 minutes run-time for my perl program to complete, so I said
to myself: "...I am not stupid, man, I shall print some progress
messages (a simple counter will do) for every 10 lines read to STDERR,
before I fall asleep while watching the program..."

I have said it, so I have done it!

Now, printing the counter to STDERR works fine, but here is the deal:
================================================== =

How can I (instead of a counter printed to STDERR) have a window pop up
with a fancy Microsoft-style progress bar, such as, for example, the
progress bar displayed by an installation procedure?

I was thinking of creating a small perl program which runs with
wperl.exe (so no annoying MS-Dos window pops up), this small perl
program then calls some sort of Microsoft DLL function to initialise a
pop-up window for the progress bar.

Then it "forks" off (I hope this term is politically correct) my
2000-line-perl-program and spends 30 minutes listening on STDERR to all
the messages my 2000-line-perl-program will eventually print. For every
counter printed to STDERR, my small perl program shall advance the
progress bar in the Microsoft pop-up window by 2 millimetres. In the
(unlikely) event that my 2000-line-perl-program dies, my small perl
program should be notified immediately, so it can react accordingly.

Am I completely wrong here ?

I hope you guys can push me... (...in the right direction, that is...)

Thanks in advance

George

 
Reply With Quote
 
 
 
 
Bart Van der Donck
Guest
Posts: n/a
 
      03-04-2006
George wrote:

> [...]
> It takes 30 minutes run-time for my perl program to complete, so I said
> to myself: "...I am not stupid, man, I shall print some progress
> messages (a simple counter will do) for every 10 lines read to STDERR,
> before I fall asleep while watching the program..."
>
> I have said it, so I have done it!
>
> Now, printing the counter to STDERR works fine, but here is the deal:
> ================================================== =
>
> How can I (instead of a counter printed to STDERR) have a window pop up
> with a fancy Microsoft-style progress bar, such as, for example, the
> progress bar displayed by an installation procedure?
>
> I was thinking of creating a small perl program which runs with
> wperl.exe (so no annoying MS-Dos window pops up), this small perl
> program then calls some sort of Microsoft DLL function to initialise a
> pop-up window for the progress bar.
>
> Then it "forks" off (I hope this term is politically correct) my
> 2000-line-perl-program and spends 30 minutes listening on STDERR to all
> the messages my 2000-line-perl-program will eventually print. For every
> counter printed to STDERR, my small perl program shall advance the
> progress bar in the Microsoft pop-up window by 2 millimetres. In the
> (unlikely) event that my 2000-line-perl-program dies, my small perl
> program should be notified immediately, so it can react accordingly.


I think you're looking for a Tk approach.

Two beautiful examples (complete code to run) at
http://groups.google.com/group/comp....9679d030e1adc/

--
Bart

 
Reply With Quote
 
 
 
 
George
Guest
Posts: n/a
 
      03-05-2006
Bart Van der Donck wrote:
> George wrote:
>
> > [...]
> > How can I (instead of a counter printed to STDERR) have a window pop up
> > with a fancy Microsoft-style progress bar, such as, for example, the
> > progress bar displayed by an installation procedure?


> > [...]


> I think you're looking for a Tk approach.
>
> Two beautiful examples (complete code to run) at
> http://groups.google.com/group/comp....9679d030e1adc/


Thanks Bart, both Tk-examples work straight out of the box.

However, I really looking for a 100% Microsoft-style-look-alike
progress bar.

I have searched CPAN and I found Win32::API.

I haven't yet installed it, but according to its doc, I could import a
function from a 32 bit Dynamic Link Library (DLL) file with the new()
function. This will create a Perl object that contains the reference to
that function, which I could later call.

Now my question:
Is it reasonable to assume that there exists a Win32 DLL under
WindowsXP which allows me to display and control a nice, Windows-style
progress bar ? ...and which I could control under Perl by Win32::API ?

 
Reply With Quote
 
Dr.Ruud
Guest
Posts: n/a
 
      03-05-2006
George schreef:

> Is it reasonable to assume that there exists a Win32 DLL under
> WindowsXP which allows me to display and control a nice, Windows-style
> progress bar ? ...and which I could control under Perl by Win32::API ?


Yes.

Better ask somewhere else the API-specifics.

Or google for C++ or VB code, and port that, like:
http://btmtz.mvps.org/progressbar/

--
Affijn, Ruud

"Gewoon is een tijger."

 
Reply With Quote
 
Karlheinz Weindl
Guest
Posts: n/a
 
      03-05-2006
George schrieb:
> Bart Van der Donck wrote:
>
>>George wrote:
>>
>>
>>>[...]
>>>How can I (instead of a counter printed to STDERR) have a window pop up
>>>with a fancy Microsoft-style progress bar, such as, for example, the
>>>progress bar displayed by an installation procedure?

>
>
>>>[...]

>
>
>>I think you're looking for a Tk approach.
>>
>>Two beautiful examples (complete code to run) at
>>http://groups.google.com/group/comp....9679d030e1adc/

>
>
> Thanks Bart, both Tk-examples work straight out of the box.
>
> However, I really looking for a 100% Microsoft-style-look-alike
> progress bar.


Then you might have a look at Win32::GUI which gives you a more
comfortable interface then Win32::API

Karlheinz
 
Reply With Quote
 
Dr.Ruud
Guest
Posts: n/a
 
      03-05-2006
Karlheinz Weindl schreef:
> George schrieb:


>> looking for a 100% Microsoft-style-look-alike
>> progress bar.

>
> Then you might have a look at Win32::GUI which gives you a more
> comfortable interface then Win32::API


http://dada.perl.it/gui_docs/ProgressBar.html

See http://www.xs4all.nl/~rvtol/perl/ -> Win32_GUI_ProgressBar.pl
for a code sample.

--
Affijn, Ruud

"Gewoon is een tijger."
 
Reply With Quote
 
George
Guest
Posts: n/a
 
      03-05-2006

Dr.Ruud wrote:
> Karlheinz Weindl schreef:
> > George schrieb:

>
> >> looking for a 100% Microsoft-style-look-alike
> >> progress bar.

> >
> > Then you might have a look at Win32::GUI which gives you a more
> > comfortable interface then Win32::API

>
> http://dada.perl.it/gui_docs/ProgressBar.html
>
> See http://www.xs4all.nl/~rvtol/perl/ -> Win32_GUI_ProgressBar.pl
> for a code sample.


Thanks to all who replied to my post.
I have got now all what I need to wrap my 2000-line-perl program into a
nice windows gui.

George

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
progress: compiling python2.5 under msys (specifically but notexclusively under wine) with msvcr80 Luke Kenneth Casson Leighton Python 1 01-25-2009 04:45 PM
Re: disable title bar, status bar, and address bar of a browser window John Hann ASP .Net 0 08-21-2004 05:07 AM
disable title bar, status bar, and address bar of a browser window Matt ASP .Net 0 08-21-2004 03:50 AM
Progress bar to show the progress of a task Charlie Zhang Java 3 08-16-2004 05:53 PM
progress bar or guage bar Rob ASP General 6 07-12-2003 09:46 AM



Advertisments