From: Zach <zp...@ya...> - 2006-12-28 11:46:26
|
I recently wrote an install shield with Win32::GUI. A nice feature I see of some install shields is the option to "Launch application" after the install is done. It's a nice convinient feature to let the user get down to business without having to click on the app via the start menu or desktop icon. The problem is that I have yet to find a method for executing a program from a Win32 that doesn't wait for the child to die. I have tried various fork methods as well as Proc methods and Win32::Job and threads. All of these methods require that the parent, or calling program wait until the spawn's program dies. I of course just want to launch the install app and let the user exit the install shield. This has to be doable right? Thank you. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Octavian R. <ora...@gm...> - 2006-12-28 13:04:30
|
I have not tried with Install Shield, but only with Null Soft installer (which is free) and you can do this very simple. You just need to put an "exec [program name]" in the configuration script, and the installer will launch that program. Of course you can close the installer while the program is still running. However, I'm sure Install Shield also can do this. Octavian ----- Original Message ----- From: "Zach" <zp...@ya...> To: <per...@li...> Sent: Thursday, December 28, 2006 1:46 PM Subject: [perl-win32-gui-users] Launching a detached child process fromWin32 app >I recently wrote an install shield with Win32::GUI. A > nice feature I see of some install shields is the > option to "Launch application" after the install is > done. It's a nice convinient feature to let the user > get down to business without having to click on the > app via the start menu or desktop icon. > > The problem is that I have yet to find a method for > executing a program from a Win32 that doesn't wait for > the child to die. I have tried various fork methods as > well as Proc methods and Win32::Job and threads. All > of these methods require that the parent, or calling > program wait until the spawn's program dies. I of > course just want to launch the install app and let the > user exit the install shield. This has to be doable > right? > > Thank you. > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Perl-Win32-GUI-Users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > http://perl-win32-gui.sourceforge.net/ |
From: Scott S. <sco...@pi...> - 2006-12-28 13:06:42
|
I don't know if it's in Win32 or ActiveStates Perl, but the traditional Unix method is to do an exec(). It takes a new executable and completely replaces your running program with the new program specified. I figure it's probably something you've already tried, but just in case... Scott Spearman Programmer Analyst - Pikeville Medical Center Sco...@pi... (606) 218-4660 -----Original Message----- From: per...@li... [mailto:per...@li...] On Behalf Of Zach Sent: Thursday, December 28, 2006 6:46 AM To: per...@li... Subject: [perl-win32-gui-users] Launching a detached child process fromWin32 app I recently wrote an install shield with Win32::GUI. A nice feature I see of some install shields is the option to "Launch application" after the install is done. It's a nice convinient feature to let the user get down to business without having to click on the app via the start menu or desktop icon. The problem is that I have yet to find a method for executing a program from a Win32 that doesn't wait for the child to die. I have tried various fork methods as well as Proc methods and Win32::Job and threads. All of these methods require that the parent, or calling program wait until the spawn's program dies. I of course just want to launch the install app and let the user exit the install shield. This has to be doable right? Thank you. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Perl-Win32-GUI-Users mailing list Per...@li... https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users http://perl-win32-gui.sourceforge.net/ |
From: <er...@ki...> - 2006-12-28 13:16:54
|
I've reply'd by e-mail since this isn't a win32::gui problem. I think =20 this is what he wants: #!/usr/bin/perl system 'rundll32.exe url.dll,FileProtocolHandler notepad.exe'; print foreach (1..10); __END__ While notepad is running, the main program still counts to 10 and =20 exits nicely. Quoting Scott Spearman <sco...@pi...>: > I don't know if it's in Win32 or ActiveStates Perl, but the traditional Un= ix > method is to do an exec(). It takes a new executable and completely > replaces your running program with the new program specified. > > I figure it's probably something you've already tried, but just in case... > > Scott Spearman > > > > Programmer Analyst - Pikeville Medical Center > > Sco...@pi... > > (606) 218-4660 > > > -----Original Message----- > From: per...@li... > [mailto:per...@li...] On Behalf Of > Zach > Sent: Thursday, December 28, 2006 6:46 AM > To: per...@li... > Subject: [perl-win32-gui-users] Launching a detached child process fromWin= 32 > app > > I recently wrote an install shield with Win32::GUI. A > nice feature I see of some install shields is the > option to "Launch application" after the install is > done. It's a nice convinient feature to let the user > get down to business without having to click on the > app via the start menu or desktop icon. > > The problem is that I have yet to find a method for > executing a program from a Win32 that doesn't wait for > the child to die. I have tried various fork methods as > well as Proc methods and Win32::Job and threads. All > of these methods require that the parent, or calling > program wait until the spawn's program dies. I of > course just want to launch the install app and let the > user exit the install shield. This has to be doable > right? > > Thank you. > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share yo= ur > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3DD= EVDEV > _______________________________________________ > Perl-Win32-GUI-Users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > http://perl-win32-gui.sourceforge.net/ > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share yo= ur > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3DD= EVDEV > _______________________________________________ > Perl-Win32-GUI-Users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > http://perl-win32-gui.sourceforge.net/ > |
From: Jason P. <jp...@un...> - 2006-12-28 14:26:29
|
Simply state that the desktop owns it! --code-- use strict; use warnings; use Win32::GUI; my $ret = Win32::GUI::ShellExecute(Win32::GUI::GetDesktopWindow(),'open','notepad.exe','readme.txt','',1); Scott Spearman wrote: > I don't know if it's in Win32 or ActiveStates Perl, but the traditional Unix > method is to do an exec(). It takes a new executable and completely > replaces your running program with the new program specified. > > I figure it's probably something you've already tried, but just in case... > > Scott Spearman > > > > Programmer Analyst - Pikeville Medical Center > > Sco...@pi... > > (606) 218-4660 > > > -----Original Message----- > From: per...@li... > [mailto:per...@li...] On Behalf Of > Zach > Sent: Thursday, December 28, 2006 6:46 AM > To: per...@li... > Subject: [perl-win32-gui-users] Launching a detached child process fromWin32 > app > > I recently wrote an install shield with Win32::GUI. A > nice feature I see of some install shields is the > option to "Launch application" after the install is > done. It's a nice convinient feature to let the user > get down to business without having to click on the > app via the start menu or desktop icon. > > The problem is that I have yet to find a method for > executing a program from a Win32 that doesn't wait for > the child to die. I have tried various fork methods as > well as Proc methods and Win32::Job and threads. All > of these methods require that the parent, or calling > program wait until the spawn's program dies. I of > course just want to launch the install app and let the > user exit the install shield. This has to be doable > right? > > Thank you. > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Perl-Win32-GUI-Users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > http://perl-win32-gui.sourceforge.net/ > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Perl-Win32-GUI-Users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > http://perl-win32-gui.sourceforge.net/ > > > > |
From: Jason P. <jp...@da...> - 2006-12-29 14:00:19
|
Glenn Linderman wrote: > On approximately 12/28/2006 9:07 AM, came the following characters > from the keyboard of Jason Plum: >> Thanks Glenn, >> >> There is definately a way to do it with Process, and its ugly >> compared to this. (not to mention you have to dig deep into the real >> APIP to find the option...) >> >> This is just the cleanest, easiest to understand method I could spit >> out in short order. >> > > Right. I didn't give details _because_ they are hard to find. And > your solution should be fine for the OP. But for others, maybe they > want to launch async, and then wait. Process does that better, I > think... I think it is not possible with ShellExecute, but maybe I'm > missing something there. > AFAIK you are correct. I've never read anything about the ability of ShellExecute to do an async wait on the return...Never even that way via the raw windows API. So, for the sake of the archives: This method to be used when an asynchronous process needs to be launched out of the control of perl, via the Win32 API interfaces provided to us by Win32::GUI. #== Win32::GUI::ShellExecute(Win32::GUI::GetDesktopWindow(), [parameters as documented] ); #== -- ================== Jason Plum Head of IT R&D DAJ Strategic Solutions ================== |