Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Some days you've just gotta work on something fun

Some days you've just gotta work on something fun

Scheduled Pinned Locked Moved The Lounge
phpdelphitoolshelpannouncement
13 Posts 9 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G Gary Wheeler

    I've been buried in legacy maintenance of other people's 💩 for a while, to the point where I really don't want to come in to work :sigh:. Among other things I do our installers, which encapsulate several third-party packages. Today, we've discovered a problem that's fixed in a new version of a package. The new package requires that the old one be uninstalled before the new one goes in. While this isn't too hard, the uninstaller isn't silent and the user has to click on a number of buttons for it to do its thing. Here's the fun part. For a long while I've wanted to have my installer click buttons automatically so that I didn't have to rely on the user doing it. Even when I include detailed and explicit instructions in my installer, they sometimes screw it up. We use Inno Setup[^] which lets you call functions in a DLL of your own from their Pascal script. I use this feature for several things that aren't easily accessible from script. I'm implementing an auto-click feature in the DLL that spins up a thread that watches for windows with a caption and then clicks a specified button in that window. It looks like it's going to work. I'm happier than a pig in slop :jig:.

    Software Zen: delete this;

    0 Offline
    0 Offline
    0x01AA
    wrote on last edited by
    #2

    But according to the docs, InnoSetup does also understand the command line Parameters /SILENT and /VERSILENT. They did not work for you?

    G 1 Reply Last reply
    0
    • G Gary Wheeler

      I've been buried in legacy maintenance of other people's 💩 for a while, to the point where I really don't want to come in to work :sigh:. Among other things I do our installers, which encapsulate several third-party packages. Today, we've discovered a problem that's fixed in a new version of a package. The new package requires that the old one be uninstalled before the new one goes in. While this isn't too hard, the uninstaller isn't silent and the user has to click on a number of buttons for it to do its thing. Here's the fun part. For a long while I've wanted to have my installer click buttons automatically so that I didn't have to rely on the user doing it. Even when I include detailed and explicit instructions in my installer, they sometimes screw it up. We use Inno Setup[^] which lets you call functions in a DLL of your own from their Pascal script. I use this feature for several things that aren't easily accessible from script. I'm implementing an auto-click feature in the DLL that spins up a thread that watches for windows with a caption and then clicks a specified button in that window. It looks like it's going to work. I'm happier than a pig in slop :jig:.

      Software Zen: delete this;

      H Offline
      H Offline
      honey the codewitch
      wrote on last edited by
      #3

      I used to rip apart MSI files with some MSI decompiler thing that I used to have, and then modify them to make them unattended. I wish I could remember the tool name. Orca or something?

      Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

      G A D M 4 Replies Last reply
      0
      • 0 0x01AA

        But according to the docs, InnoSetup does also understand the command line Parameters /SILENT and /VERSILENT. They did not work for you?

        G Offline
        G Offline
        Gary Wheeler
        wrote on last edited by
        #4

        This is the case where the encapsulated installers don't support silent installs or uninstalls. I even have one case where a command line installer when run with the silent option still pops up a message box when it completes :rolleyes: :mad:.

        Software Zen: delete this;

        1 Reply Last reply
        0
        • H honey the codewitch

          I used to rip apart MSI files with some MSI decompiler thing that I used to have, and then modify them to make them unattended. I wish I could remember the tool name. Orca or something?

          Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

          G Offline
          G Offline
          Gary Wheeler
          wrote on last edited by
          #5

          MSI is an abomination before all known deities. Before we started using Inno Setup we tried InstallShield, which generated MSI. I spent over a month trying to get our stuff installed properly. When I found out they wanted over $1K for each additional user language to support localized installs, I said screw it and went looking. After finding Inno Setup, I replicated our product install in in a single day.

          Software Zen: delete this;

          1 Reply Last reply
          0
          • H honey the codewitch

            I used to rip apart MSI files with some MSI decompiler thing that I used to have, and then modify them to make them unattended. I wish I could remember the tool name. Orca or something?

            Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

            A Offline
            A Offline
            Alister Morton
            wrote on last edited by
            #6

            Orca rings a bell, yes.

            1 Reply Last reply
            0
            • H honey the codewitch

              I used to rip apart MSI files with some MSI decompiler thing that I used to have, and then modify them to make them unattended. I wish I could remember the tool name. Orca or something?

              Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

              D Offline
              D Offline
              dandy72
              wrote on last edited by
              #7

              It was indeed called Orca, and was part of the Platform SDK. A few links brought me here: [Windows SDK - Windows app development | Microsoft Developer](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/) There's no direct link to it however, it looks like you have to download the entire SDK just to get that one file. [Edit] Oh, and [here](https://learn.microsoft.com/en-us/windows/win32/msi/orca-exe). Although this still has no direct link.

              1 Reply Last reply
              0
              • G Gary Wheeler

                I've been buried in legacy maintenance of other people's 💩 for a while, to the point where I really don't want to come in to work :sigh:. Among other things I do our installers, which encapsulate several third-party packages. Today, we've discovered a problem that's fixed in a new version of a package. The new package requires that the old one be uninstalled before the new one goes in. While this isn't too hard, the uninstaller isn't silent and the user has to click on a number of buttons for it to do its thing. Here's the fun part. For a long while I've wanted to have my installer click buttons automatically so that I didn't have to rely on the user doing it. Even when I include detailed and explicit instructions in my installer, they sometimes screw it up. We use Inno Setup[^] which lets you call functions in a DLL of your own from their Pascal script. I use this feature for several things that aren't easily accessible from script. I'm implementing an auto-click feature in the DLL that spins up a thread that watches for windows with a caption and then clicks a specified button in that window. It looks like it's going to work. I'm happier than a pig in slop :jig:.

                Software Zen: delete this;

                K Offline
                K Offline
                kmoorevs
                wrote on last edited by
                #8

                Nice! :thumbsup: My favorite projects have always been utility apps that I use personally, especially the ones that involve automation.

                "Go forth into the source" - Neal Morse "Hope is contagious"

                1 Reply Last reply
                0
                • H honey the codewitch

                  I used to rip apart MSI files with some MSI decompiler thing that I used to have, and then modify them to make them unattended. I wish I could remember the tool name. Orca or something?

                  Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                  M Offline
                  M Offline
                  Matt Bond
                  wrote on last edited by
                  #9

                  Yes, it's Orca. But that's like doing assembly programing. I wouldn't wish it on my favorite enemy.

                  Bond Keep all things as simple as possible, but no simpler. -said someone, somewhere

                  H 1 Reply Last reply
                  0
                  • M Matt Bond

                    Yes, it's Orca. But that's like doing assembly programing. I wouldn't wish it on my favorite enemy.

                    Bond Keep all things as simple as possible, but no simpler. -said someone, somewhere

                    H Offline
                    H Offline
                    honey the codewitch
                    wrote on last edited by
                    #10

                    I don't remember it being terrible for modifying MSIs as long as you knew how they worked, but I wouldn't use it to build one from scratch.

                    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                    1 Reply Last reply
                    0
                    • G Gary Wheeler

                      I've been buried in legacy maintenance of other people's 💩 for a while, to the point where I really don't want to come in to work :sigh:. Among other things I do our installers, which encapsulate several third-party packages. Today, we've discovered a problem that's fixed in a new version of a package. The new package requires that the old one be uninstalled before the new one goes in. While this isn't too hard, the uninstaller isn't silent and the user has to click on a number of buttons for it to do its thing. Here's the fun part. For a long while I've wanted to have my installer click buttons automatically so that I didn't have to rely on the user doing it. Even when I include detailed and explicit instructions in my installer, they sometimes screw it up. We use Inno Setup[^] which lets you call functions in a DLL of your own from their Pascal script. I use this feature for several things that aren't easily accessible from script. I'm implementing an auto-click feature in the DLL that spins up a thread that watches for windows with a caption and then clicks a specified button in that window. It looks like it's going to work. I'm happier than a pig in slop :jig:.

                      Software Zen: delete this;

                      J Offline
                      J Offline
                      jschell
                      wrote on last edited by
                      #11

                      Gary Wheeler wrote:

                      I'm implementing an auto-click feature in the DLL that spins up a thread that watches for windows with a caption

                      Autoit? https://www.autoitscript.com/site/[^]

                      G 1 Reply Last reply
                      0
                      • G Gary Wheeler

                        I've been buried in legacy maintenance of other people's 💩 for a while, to the point where I really don't want to come in to work :sigh:. Among other things I do our installers, which encapsulate several third-party packages. Today, we've discovered a problem that's fixed in a new version of a package. The new package requires that the old one be uninstalled before the new one goes in. While this isn't too hard, the uninstaller isn't silent and the user has to click on a number of buttons for it to do its thing. Here's the fun part. For a long while I've wanted to have my installer click buttons automatically so that I didn't have to rely on the user doing it. Even when I include detailed and explicit instructions in my installer, they sometimes screw it up. We use Inno Setup[^] which lets you call functions in a DLL of your own from their Pascal script. I use this feature for several things that aren't easily accessible from script. I'm implementing an auto-click feature in the DLL that spins up a thread that watches for windows with a caption and then clicks a specified button in that window. It looks like it's going to work. I'm happier than a pig in slop :jig:.

                        Software Zen: delete this;

                        C Offline
                        C Offline
                        charlieg
                        wrote on last edited by
                        #12

                        I got into that installer crap a long while ago when MS rolled out their new approach. I'd rather stick needles in my eyes. That said, it appears I need to make $$ again, so ....

                        Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.

                        1 Reply Last reply
                        0
                        • J jschell

                          Gary Wheeler wrote:

                          I'm implementing an auto-click feature in the DLL that spins up a thread that watches for windows with a caption

                          Autoit? https://www.autoitscript.com/site/[^]

                          G Offline
                          G Offline
                          Gary Wheeler
                          wrote on last edited by
                          #13

                          Unfortunately the corporate IT gestapo gives me a load of crap every time I want to use third-party software. For open source / freeware I just use it and beg forgiveness if I get caught. This is what happened when they discovered I was using Inno Setup. They wanted me to stop using it, but by that time it had been used for all of our products for years. Purchased software is a PITA because they evaluate it, don't like it, and then offer an alternative that doesn't do what I need. For this reason, I usually roll my own for this sort of thing.

                          Software Zen: delete this;

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups