Looks good - I'll have to have a play. Have you had any issues rolling out your exe across different versions of windows? Do you build the child with perl2exe before shipping it out?

Thanks,

jez.


From: "Farrington, Ryan" <[EMAIL PROTECTED]>
CC: "'perl-win32-gui-users@lists.sourceforge.net'" <perl-win32-gui-users@lists.sourceforge.net>
Subject: RE: [perl-win32-gui-users] Win32::GUI help
Date: Wed, 7 Jan 2004 08:17:12 -0600

Here ya go: All the use's were done to allow for perl2exe to compile it into
an application. The code is really really sloppy. =( Also I used guiloft to
create the win32::Gui stuff... Way easier.. I would highly recommend it! =-)


-----------CODE-----------
#!e:\perl\bin\perl
#this is the parent script
use Win32::GUI;
use Win32;
use Win32::GUI::Loft;
use Win32::GUI::Resizer;
use Win32::GUI::ToolbarWindow;
use Win32::GUI::BorderlessWindow;
use Win32::GUI::Loft::Cluster;
use Win32::GUI::Loft::ControlProperty;
use Win32::GUI::Loft::ControlProperty::Readonly;
use Win32::GUI::Loft::ControlInspector;
use Win32::GUI::Loft::Control;
use Win32::GUI::Loft::Control::ForegroundBackground;
use Win32::GUI::Loft::Control::Intangible;
use Win32::GUI::Loft::Control::Window;
use Win32::GUI::Loft::Control::Button;
use Win32::GUI::Loft::Control::Textfield;
use Win32::GUI::Loft::Control::RichEdit;
use Win32::GUI::Loft::Control::Label;
use Win32::GUI::Loft::Control::Checkbox;
use Win32::GUI::Loft::Control::Radiobutton;
use Win32::GUI::Loft::Control::Listbox;
use Win32::GUI::Loft::Control::Combobox;
use Win32::GUI::Loft::Control::TreeView;
use Win32::GUI::Loft::Control::ListView;
use Win32::GUI::Loft::Control::Groupbox;
use Win32::GUI::Loft::Control::Toolbar;
use Win32::GUI::Loft::Control::StatusBar;
use Win32::GUI::Loft::Control::ProgressBar;
use Win32::GUI::Loft::Control::TabStrip;
use Win32::GUI::Loft::Control::Splitter;
use Win32::GUI::Loft::Control::ImageList;
use Win32::GUI::Loft::Control::Timer;
use Win32::GUI::Loft::Control::Custom;
use Win32::GUI::Loft::Control::Graphic;
use Win32::GUI::Resizer;
use Data::Dumper;
use IO::Socket;
use Cwd;
use Data::Dumper;
use Win32::Process;
use Win32::ProcFarm::Port;
use Win32::ProcFarm::TickCount;
use Win32::ProcFarm::Parent;
use Win32::ProcFarm::Port;

#this hides the dos window =-) yeah!
my ($DOS) = Win32::GUI::GetPerlWindow(); Win32::GUI::Hide($DOS); my
$port_obj = Win32::ProcFarm::Port->new(9000, 1); my $interface =
Win32::ProcFarm::Parent->new_async($port_obj, "perl_script.pl",
Win32::GetCwd);

$interface->connect;
sub main {

        # this code from here to the other here (lol) is all I need to
create the window. Ergo why GUILOFT ROCKS!
        my $fileWindow = "Hotfix.gld";
        my $objDesign = Win32::GUI::Loft::Design->newLoad($fileWindow) or
die("Could not open window file ($fileWindow)");
        #Create a menu and assign it to the design object before
        #building the window.
        $objDesign->mnuMenu(
                Win32::GUI::MakeMenu(
                        "&File"=>"mnuFile",
                        " > Save"=> "mnuFileSave",
                        " > Save All"=> "mnuFileSaveAll",
                        " > E&xit"=> "mnuFileExit",
                        "&Help"=> "mnuHelp",
                        " > A&bout"=> "mnuHelpAbout"
                )
        );
        my $win = $objDesign->buildWindow() or die("Could not build window
($fileWindow)");
        $win->Show();
        # the other HERE! =-)

}

sub ::btnOpen_Click {
        $jobServerToProcess = "localhost";
        $interface->execute('check_server', "$jobServerToProcess");
}


-----------END CODE-----------


-----------CODE-----------
#!e:\perl\bin\perl
#this is the child process
use Data::Dumper;
use IO::Socket;
use Win32::GUI;
my ($DOS) = Win32::GUI::GetPerlWindow(); Win32::GUI::Hide($DOS);

sub init {
  my($port_num, $unique) = @ARGV[0,1];

  $socket = new IO::Socket::INET ("localhost:$port_num") or die "Child
unable to open socket.\n";
  print $socket pack("V", $unique);
}

sub main_loop {
  my $len, $cmd;

  my $temp = read($socket, $len, 4);
  $temp or exit;
  $temp == 4 or die "Unable to completely read command length.\n";
  $len = unpack("V", $len);
  (read($socket, $cmd, $len) == $len) or die "Unable to completely read
command.\n";
  my($command, $ptr2params);
  eval($cmd);
  my(@retval) = &$command(@{$ptr2params});
  my $retstr = Data::Dumper->Dump([EMAIL PROTECTED], ["ptr2retval"]);
  print $socket (pack("V", length($retstr)).$retstr);
}

&init;
while(1) {
        &main_loop;
}

sub check_server {
        my($server) = shift;
        # do your stuff here! =-)

}




-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
Perl-Win32-GUI-Users mailing list
Perl-Win32-GUI-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users

_________________________________________________________________
Find a cheaper internet access deal - choose one to suit you. http://www.msn.co.uk/internetaccess


Reply via email to