This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Silent Install External programs Popups.
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 15, 2009
03:07 PM
Silent Install External programs Popups.
I launch some programs in my installscript using launch app and wait for example "iscsicpl.exe" or "iscsicpl.cpl". The iscsi initiator window. However, On a silent install, i would like to supress all the external pop ups that are not from my setup. For example windows errors. It makes my silent install not a very silent install. Any ideas on how to write and record external message boxes to the .iss file if there is any way? Thanks.
(11) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 15, 2009
05:58 PM
LaunchApplication has a SW_HIDE for applications it executes. Your saying thats not working?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 16, 2009
10:34 AM
LaunchAppAndWait(WINDIR^"system32\\iscsicpl.exe", "", LAAW_OPTION_WAIT | SW_HIDE);
Just tried the above. Doesn't seem to work. is this wrong syntax?
Just tried the above. Doesn't seem to work. is this wrong syntax?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 16, 2009
10:57 AM
Yea, Based on other forum posts, which is a funny way to do it, I would try:
LaunchAppAndWait(WINDIR^"system32\\iscsicpl.exe", "", SW_HIDE, LAAW_OPTION_WAIT);
Most languages use the Bitwise inclusive "|" I know, but I don't think IS is one of them.
LaunchAppAndWait(WINDIR^"system32\\iscsicpl.exe", "", SW_HIDE, LAAW_OPTION_WAIT);
Most languages use the Bitwise inclusive "|" I know, but I don't think IS is one of them.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 16, 2009
10:59 AM
BTW, you may want to look at WaitForApplication() as well, because it you can set a timeout. You don't want the application your executing to get into an infinite loop and get your installer locked up.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 16, 2009
11:13 AM
Actually I see posts of both ways.. Maybe the bitwise inclusive is new to 2009. I was see it without for 2008.
I just tried it to see that 2009 doesnt like it without the bitwise inclusive.
I'll see if I can reproduce it your issue.
I just tried it to see that 2009 doesnt like it without the bitwise inclusive.
I'll see if I can reproduce it your issue.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 16, 2009
11:23 AM
Ok, I see your problem.. Seems InstallShield is ignoring SW_HIDE all together.
This doesn't even work.
LaunchAppAndWait(WINDIR^"notepad.exe", "", SW_HIDE);
Needs to be reported as a bug.
This doesn't even work.
LaunchAppAndWait(WINDIR^"notepad.exe", "", SW_HIDE);
Needs to be reported as a bug.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 16, 2009
01:14 PM
Thanks Gavin for trying to reproduce, i'll see if i can figure out another way.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 16, 2009
01:56 PM
Found a solution..
#define MY_HIDE 2
...
LaunchAppAndWait(WINDIR^"notepad.exe", "", LAAW_OPTION_WAIT|MY_HIDE);
Not sure why the SW_HIDE doesn't work, but if you define a HIDE of your own to 2. It works..
#define MY_HIDE 2
...
LaunchAppAndWait(WINDIR^"notepad.exe", "", LAAW_OPTION_WAIT|MY_HIDE);
Not sure why the SW_HIDE doesn't work, but if you define a HIDE of your own to 2. It works..
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 16, 2009
02:30 PM
Now that I think about it, I know what SW_HIDE doesn't work with other values, but still confused why it wouldn't work alone.. It's a bug in IS, but trying to think in a C++ world why it's an issue and how to resolve it.
If you go into any language, I'm using C++ so if I do the following:
int i = 5|0; //i = 5
int i = 2|0; //i = 2
SW_HIDE value is 0 making it transparent. I'm not sure how Microsoft handles that in their APIs since SW_HIDE is 0 in all the PC languages. That would be a challenge without changing the value of SW_HIDE to something beside zero. However passing only SW_HIDE should make the value 0, so I'm guessing in IS they were working on this issue and someone just commented the code for SW_HIDE altogether until they figure out how to resolve this issue.
Not sure why 2 works, I just started with -1 and was going 1, 2, 4, 8, but didn't have to go far before I noticed that 2 worked.. It may be the temporary solution until they resolve the SW_HIDE issue.
If you go into any language, I'm using C++ so if I do the following:
int i = 5|0; //i = 5
int i = 2|0; //i = 2
SW_HIDE value is 0 making it transparent. I'm not sure how Microsoft handles that in their APIs since SW_HIDE is 0 in all the PC languages. That would be a challenge without changing the value of SW_HIDE to something beside zero. However passing only SW_HIDE should make the value 0, so I'm guessing in IS they were working on this issue and someone just commented the code for SW_HIDE altogether until they figure out how to resolve this issue.
Not sure why 2 works, I just started with -1 and was going 1, 2, 4, 8, but didn't have to go far before I noticed that 2 worked.. It may be the temporary solution until they resolve the SW_HIDE issue.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 16, 2009
03:37 PM
BTW, they have an undocumented SWP_HIDEWINDOW with the value of 128. It too doesn't seem to work. Possibly not for this API, unsure.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 23, 2009
03:24 PM
Old post, but anyway, you can use the much more controllable "LaunchApplication" to do what you want.
LaunchApplication(byval string szProgram, byval string szCmdLine, byval string szDirectory, byval number nShowWindow, byval number nTimeOut, byval number nOptions );
Example:
LaunchApplication(szProgram, szCmdLine, szDirectory, SW_HIDE, INFINITE, LAAW_OPTION_WAIT);
LaunchApplication(byval string szProgram, byval string szCmdLine, byval string szDirectory, byval number nShowWindow, byval number nTimeOut, byval number nOptions );
Example:
LaunchApplication(szProgram, szCmdLine, szDirectory, SW_HIDE, INFINITE, LAAW_OPTION_WAIT);