Jump to content

Help with ControlTreeView and Installshield


 Share

Recommended Posts

I'm trying to automate the install of an application that uses InstallShield exe. This particular app isn't a wrapper for an MSI and uses a custom action that trips up the /r recording. So far I can clear most of the dialog boxes but I can seem to get ControlTreeView to select the check boxes.

$hWND = Winwait ( "Pro Filing Client - InstallShield Wizard" )
$hControl = ControlGetHandle ( $hWND , "" , "SysTreeView321" )
ControlTreeView ( $hWND , "" , $hControl , "IsChecked" , "#0" )

Returns 0 indicating that it's an unchecked item.

$hWND = Winwait ( "Pro Filing Client - InstallShield Wizard" )
$hControl = ControlGetHandle ( $hWND , "" , "SysTreeView321" )
ControlTreeView ( $hWND , "" , $hControl , "exists" , "#0" )

Returns 0 indicating that it doesn't exist.

$hWND = Winwait ( "Pro Filing Client - InstallShield Wizard" )
$hControl = ControlGetHandle ( $hWND , "" , "SysTreeView321" )
$sText = ControlTreeView ( $hWND , "" , $hControl , "Check" , "#0" )

Returns 1 indicates an error but I don't know what that issue is or why.

Installshield dialog and AutoIt Window info attached. I'd appreciate insight or help anyone can offer.

Thank you :)

rsn


 

dialog.PNG

Window info.PNG

Link to comment
Share on other sites

it seems very unlikely that an InstallShield Wizard does not have a silent installation option. i'd advise you look carefully into the product web site, docs, faq, support forum, etc. to locate that option. what is this product? can you post a link to the official web site?

Signature - my forum contributions:

Spoiler

UDF:

LFN - support for long file names (over 260 characters)

InputImpose - impose valid characters in an input control

TimeConvert - convert UTC to/from local time and/or reformat the string representation

AMF - accept multiple files from Windows Explorer context menu

DateDuration -  literal description of the difference between given dates

Apps:

Touch - set the "modified" timestamp of a file to current time

Show For Files - tray menu to show/hide files extensions, hidden & system files, and selection checkboxes

SPDiff - Single-Pane Text Diff

 

Link to comment
Share on other sites

I appreciate the advice @orbs. As I said in my original post, this installer isn't an MSI wrapper and there are custom actions in the installer script that the response file can't deal with. Otherwise this would be a breeze.

The application is part of ProLaw (https://legal.thomsonreuters.com/en/products/prolaw), an attorney case management system our organization (a local government) uses. This, like much of the software we end up supporting, is dreadful on the client install side. Generally speaking, I can get just about any software configured and deployed inside of a few days. But this requires the end user to be an admin during install even though it's per user ( ! ) and the installer doesn't pay attention to some of the response file because of the custom actions.

If this doesn't end up working, I can still re-package it with a delta capture. I was just hoping to be able to "home grow it," as it were. 

 

Link to comment
Share on other sites

Have you tried using the functions in GuiTreeView.au3 like:

_GUICtrlTreeView_GetItemByIndex : Retrieve the handle of the item by its position in the list of child items
_GUICtrlTreeView_GetChecked     : Indicates if a item has its checkbox checked
_GUICtrlTreeView_SetChecked     : Sets whether a item has it's checkbox checked or not

 

Edited by TheXman
Link to comment
Share on other sites

@TheXman I just tried your suggestions. _GUICtrlTreeView_GetChecked returns that it's unchecked but _GUICtrlTreeView_SetChecked doesn't check any of the boxes. My guess is that the dialog identifies as SysTreeView32 but contains some custom elements that cause AutoIt to not work as intended.

@KaFu I have UAC turned off for the test PC. I've run the installer and the script as a user and with an elevated token (not just admin) and still doesn't work.

I lay the blame solely on this installer (and it's author) and not on AutoIt since my testing in other applications AutoIt works splendidly. 

Link to comment
Share on other sites

On 7/19/2022 at 7:00 PM, rsn said:

This, like much of the software we end up supporting, is dreadful on the client install side.

 

On 7/19/2022 at 7:00 PM, rsn said:

But this requires the end user to be an admin during install even though it's per user ( ! )

 

i honestly sympathize with your statements, as i've encountered such in the past... i still fume about it when i remember :-) fortunately there were not too many endpoint targets back then, and a rather helpful helpdesk team, so we handled the installations in person (most of them remotely).

i can't help regarding the ListView issue, although it seems like a rather trivial control for AutoIt to handle. i think i would go for the repackaging strategy. judging by the installer UI, it seems like an old enough application to not be messing about with core system components, so that may well be the better approach.

Signature - my forum contributions:

Spoiler

UDF:

LFN - support for long file names (over 260 characters)

InputImpose - impose valid characters in an input control

TimeConvert - convert UTC to/from local time and/or reformat the string representation

AMF - accept multiple files from Windows Explorer context menu

DateDuration -  literal description of the difference between given dates

Apps:

Touch - set the "modified" timestamp of a file to current time

Show For Files - tray menu to show/hide files extensions, hidden & system files, and selection checkboxes

SPDiff - Single-Pane Text Diff

 

Link to comment
Share on other sites

@KaFu I tried running with and without the x64 flag and compiling as both too, just in case running from Scite and running the executable made a difference. Thank you for the input.

@jugador I did actually try that early on along with 3 deep, just in case the devs made some weird choices (which, don't get me wrong, they did!). Thanks for the reply. 

I'm going to give up on it for now and try to repackage it as a delta capture. My thanks to everyone that offered advice, input and help. You all have my gratitude.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...