cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
IS2010
Level 3

EULA Scrolling on 64-bit

Hi,

I am trying to use the Eula scrolling feature in my project.I followed all the steps mentioned and it seems to work in 32 bit machines. Do I have to do something different to get it working on 64 bit.

Thanks in Advance.
Labels (1)
0 Kudos
(17) Replies
MichaelU
Level 12 Flexeran
Level 12 Flexeran

It appears Win64 needs a 64-bit build of the EulaScrollWatch.dll. I've filed IOC-000082066 to track this, and I'll try to get an early build of the file posted here as soon as possible.
0 Kudos
deblin
Level 4

Will this update be posted here?

Thanks!
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Here's a preliminary rebuild of these files, including an x64 version. They go where you'd probably expect, under Redist\Language Independent, and are then separated into folders by platform, as they have the same name. After you get this file in place, you'll have to modify the original steps for the scroll watcher slightly; let me know if these summarized instructions are not enough.

Create a second custom action WatchScroll64 which refers to the new x64 .dll file, but is otherwise identical to WatchScroll.

Tweak the condition of the DoAction event to add the conditional clause AND NOT VersionNT64.

Add a second DoAction event, nearly identical to the first, which calls WatchScroll64, and uses the opposite additional clause AND VersionNT64.
0 Kudos
IS2010
Level 3

Michael,

Thanks a lot for the quick turnaround.

The new dll for the 64 bit machines worked fine.

Thanks again
0 Kudos
deblin
Level 4

Ditto on thanks and turn-around.

Works great and in cursory testing I couldn't make it fail. Thanks a ton.

Regarding the instructions, they work fine, but the following may help a tiny bit (especially to newer IS users...)

Clone the custom action WatchScroll and name the new custom action WatchScroll64. In the DLL Filename field, refer to the new x64 .dll file. Make no other changes to this custom action.

From the Dialogs interface, open the LicenseAgreement Behavior and select the ScrollableText control. Tweak the condition of the DoAction event to add the conditional clause:
AND NOT VersionNT64.

Add a second DoAction event, nearly identical to the first, which calls WatchScroll64, and uses the opposite additional clause:
AND VersionNT64.

Something like that. Thanks again, good stuff!
0 Kudos
deblin
Level 4

WatchScroll64 does not work with Windows 7 (I've not tested the 32 bit version). The same .msi works with 64 bit Vista and XP, but not Win7. You can get the .msi to work by running it in Compatibility mode.
0 Kudos
deblin
Level 4

WatchScroll64 does not work with Windows 7 (I've not tested the 32 bit version). The same .msi works with 64 bit Vista and XP, but not Win7. You can get the .msi to work by running it in Compatibility mode

Can someone at Flexera please respond to this?
0 Kudos
DebbieL
Level 17

We haven't been able to reproduce the issue. In our tests, WatchScroll64 works with 64-bit Windows 7 without the compatibililty mode.

Can you post a sample that reproduces the issue?

Thanks!
0 Kudos
deblin
Level 4

It may be quicker if you were to send your sample to me. Would that be possible?

Thanks
0 Kudos
deblin
Level 4

Well, I guess sending the test project was a bit too much to ask.

I did some more testing on my own and here's the deal...

When you run the MSI from the IS2010 UI (click on either the Test User Interface or Run buttons) the button will not go active. If you run the MSI outside of IS2010, it works just fine. Same MSI, same workstation, weird.
0 Kudos
deblin
Level 4

The same thing happens when an MSI project is built as and EXE (Setup.exe). EULAScrollWatcher works fine on 32 bit OS's but not on 64 bit systems. If the same project is compiled as an MSI it works correctly in 32 and 64 bit environments.
0 Kudos
mjd918
Level 3

I have tested this on windows 7 machine and the "Next" button never gets enabled no matter how I scroll the text. I am using a single setup.exe file. Is there a way to get this to work on a setup.exe?
0 Kudos
deblin
Level 4

Here's the latest response that I received from Flexerror support on this issue:

Setup.exe launches either the 32 or 64 bit version of MsiExec on a 64 bit machine depending on the template summary of the MSI. If the MSI is not marked as X64 then the 32 bit version of MsiExec is used to launch the msi. This means that the Eula Watching custom actions will be 32 bit processes and this causes an issue if you use the 64 bit version of the dll.

One way to work around this is to determine on a 64 bit machine if you are running as a WOW64 process and if so launch the 32 bit dll rather than the 64 bit. The following code worked successfully in my tests to determine if you are running in WOW64 process:

HWND hWndParentWindow = FindWindow(_T("MsiDialogCloseClass"), NULL);
DWORD dwProcessId;
GetWindowThreadProcessId(hWndParentWindow, &dwProcessId);
HANDLE hOwningProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, FALSE, dwProcessId);

BOOL bIsWow64 = FALSE;
IsWow64Process(hOwningProcess,&bIsWow64);

if(bIsWow64)
MsiSetProperty(hInstall,"ISWOW64","1");


CloseHandle(hOwningProcess);
hWndParentWindow=NULL;

I have submitted a work order to the development team to have this problem addressed with a code fix on our side. At this point there is no time frame information available for this request but as soon as there is are any further details I will contact you immediately.
0 Kudos
mjd918
Level 3

Thanks for the quick response and sorry for being slow to view your answer. I'm not sure where to put this code to try it out.
0 Kudos
mjd918
Level 3

I'm very new to InstallShield. I've been playing around with this and included the code in an install script function. But while building, multiple errors are thrown such as "HWND invalid statement" and "IsWow64Process undefined indentifier". Any additional information would be appreciated.
0 Kudos
mjd918
Level 3

I tried placing this in a VBScript file and add it as the first action in custon actions, but still no luck. Any ideas?
0 Kudos
Mrunmayee
Level 5

I have the custom action and the conditions for enable/Disable EULA page Next button. It works fine a English OS, but doesn't work on Chinese OS. Any help would be really appreciated.
0 Kudos