Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

jdavidb (1361)

jdavidb
  (email not shown publicly)
http://voiceofjohn.blogspot.com/

J. David Blackstone has a Bachelor of Science in Computer Science and Engineering and nine years of experience at a wireless telecommunications company, where he learned Perl and never looked back. J. David has an advantage in that he works really hard, he has a passion for writing good software, and he knows many of the world's best Perl programmers.

Journal of jdavidb (1361)

Wednesday June 09, 2010
10:10 AM

Strawberry Win32 GUI programming

[ #40388 ]

If I wanted to write a Strawberry program to run as a daemon and periodically pop up alerts on my machine, and I had no Windows Perl GUI programming experience other than an abortive look at WxPerl years before anybody ever thought of Strawberry, what module would I be looking for?

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • Any of the GUI toolkits that are available from CPAN?

    - Wx
    - Tk
    - Win32::GUI ...

    Should all work either out of the box or after a simple "cpan" invocation. I haven't used the latter toolkit, though.

    • To clarify, I was looking for recommendations. I figured everybody would say Win32::GUI, but I wanted to see what prevailing thought is.
      --
      J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
      • For simple jobs where the gui is incidental and doesn't dominate the application, I'd probably agree on Win32::GUI is you can deal with it.

  • This sounds like something growl would be a decent match for. I have not used it myself but Growl::GNTP should let you send notifications to growl from perl.

    • Hmm, Growl looks like it's going to solve a number of my problems. Unfortunately I simplified my original question and I'm not sure Growl alone will be up to that task. But I think I owe you lunch for showing me this!

      --
      J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
    • Thank you very much for this suggestion. Growl turned out to be perfect for a LOT of things I want to do.

      --
      J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
  • As you said

    periodically pop up alerts on my machine

    do you even need a GUI toolkit? It seems to me like a plain MessageBox [microsoft.com] API call is all you need.

    That is, unless you want the script to continue running while the message is shown. In that case, you could set up a simple window with The GUI Loft [darserman.com]. Oldie, but probably good enough.

    And I've never seen a service with a GUI, I'm not sure if it will behave nicely.

    • Actually I think I'll probably input a couple of things into the dialog box, so it's more than just a message box.

      But I'm unclear on what you're suggesting ... write XS code? Or is there some standard way to call MessageBox from Perl? I'm pretty ignorant. :)

      --
      J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
    • I said

      And I've never seen a service with a GUI, I'm not sure if it will behave nicely.

      and today I found this blog post: Do you still use the MessageBox API in your Windows Service? (Or do you display any type of User Interface?) [msdn.com]

      and it says:

      Starting with Windows Vista and above, user interfaces generated by Windows services can’t be seen. And even worst, your service could be stuck waiting for some user input that the user cannot give as she does not see anything!

      It goes on to give a generic solution (plus a simple solution for just a messagebox), but it's anything but trivial.

      But