How to know if user click in "Cancel" UAC during initialization? - inno-setup

I have a NET Framework 4.5.2 in Inno Setup wizard, and i have a problem with Windows 8.1:
My C# application verify if Windows have NET Framework 4.5.2, and if dont, we call the instalation generated by Inno Setup and install with Silenty/Hidden options.
The problem is, if the user are not admin, and a UAC window open asking if he want do execute or not the application (from Inno Setup). If user click on cancel, how i can know that the instalation dont have finished or dont even started ?
Theres a way to know if he have cancel without looking if NET Framework are in registry/regedit ? I say that, because on Windows 8.1 the Release version from NET Framework are only updated after reboot the system.

Inno Setup-made installer returns exit code 2, when it did not finish for whatever reason (including UAC cancel).
Though I'm not sure why you need to check for UAC cancel specifically. You want to know, if the installation failed for any reason, right? So check for any non-zero exit code.

Related

How to make uninstallation work by right clicking app icon from start menu [duplicate]

I created an install file with Inno Setup 5.5.9 that I then ran on a Windows 10 machine. My only problem has to do with uninstalling the program. I can use the Control Panel just fine to uninstall. But in the Start menu, when I right click on the shortcut that launches my program, there is no option in the context menu to Uninstall. Other programs do have this option.
Is this a Windows 10 thing that I can't get around?
Does the program need to be installed under Program Files or Program Files (x86)?
Or is there a change I can make to my Inno script to have the uninstall option show up?
I'm a standard user on the Windows 10 machine, and therefore installed the program without administrative privileges. Does that have anything to do with it?
Only "Windows apps" (aka Universal Windows Platform [UWP] apps, Windows Store apps and Metro-style apps) have working "Uninstall" command.
Classic "Desktop apps", like those installed with Inno Setup, do not. Their Uninstall command only opens "Program and Features" Control Panel. Check other major desktop apps, like Microsoft Visual Studio or Google Chrome. Their "Uninstall" command behaves the same. And they are definitely not packaged by Inno Setup.
You would have to re-package your desktop app to turn it to "Windows app", instead of using Inno Setup.
I had the same problem.
In my case sometimes only the uninstall shortcut in windows start menu disappers.
I somehow fixed it.
Just use in Icons-section the command to create this shortcut twice. Their names need to differ.
For example:
Name: "{group}\{#Uninstall_Name} {#MyAppName}"; Filename: "{uninstallexe}";IconFilename: {app}\{#IconFileStartDesktop};
Name: "{group}\{#MyAppName} {#Uninstall_Name}"; Filename: "{uninstallexe}" ;IconFilename: {app}\{#IconFileStartDesktop};
If the first uninstall-shorcut does not show up, the second one enter code here will to it.

Use AppId to uninstall program installed with Inno Setup in case uninstaller exe is lost

I am trying to changing our software installer (set up) project from using Wix to Inno Setup.
In Wix, it has msiexec /X {appId} as UninstallString. But I notice Inno Setup does it differently. It calls unins000.exe straight away. What I concern is that if in any cases, unins000.exe is missing from the program folder, then user might not be able to uninstall our software properly.
My questions are:
Are there any ways I can customize the UninstallString to be using AppId to uninstall?
Can I use the AppId to implement uninstallation with Inno Setup?
(*I have static AppId for our software so AppId is always known.)
I have tried to manually type in the command msiexec /X {AppID}_isl in command prompt but seems cannot uninstall the software this way.
Thanks in advance.
Inno Setup does not use MSI database at all. Inno Setup is completely standalone, without any dependencies or global databases or registrations of any kind.
Inno Setup AppId is not MSI product code. You can in a sense, uninstall the application using the AppId. By looking up the AppId in the HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall and using the UninstallString therein. But that's obviously not what you want.
Using Inno Setup's own uninstaller is the only way to uninstall the application.
I do not think you are solving a real problem. Whatever user changes in the installation folder would somehow damage the application. The user is not supposed to touch the installation folder any way. And by default the user does not even have permissions to do so (if you are installing your application to Program Files).
Anyway, reinstalling the application (and thus recreating the uninstaller) will for many cases solve the problem of a missing uninstaller.

msi silent installation. There is still dialog UI appears after the installation

I use silent installation for msi product using command line. When the installation finishes, there is an information wizard dialog appearing. My problem is why does that dialog appear even though I used silent installation command. The silent installation in my case handles only the next button prompts. Is there someway to also handle the last information dialog that appears after installation. the command I used for this is (msiexec /i Product.msi /qn )
If you ran the msi with /qn and still saw a dialog appear then the UI isn't coming from MSI it's coming from a custom action. It is a violation of best practices to author UI to appear in a silent installation but odds are the person who wrote the MSI doesn't know that and didn't test the silent install.
The only thing you can do is examine the MSI using ORCA and create a transform to eliminate the custom action. I can't tell you exactly how to do that because I would need to look at the exact MSI to know what needs to be changed.

How to check and install another software requirement before your software in installshield?

I'm doing a software that requires from OpenVPN to work, so I'm expecting that when I launch the installer checks if OpenVPN is installed and if not launch it's installer. If the install is successful then continue with the install, if not, exits.
Also, I'd like to check if O.S is 32 or 64bits in order to launch the correct installer from openvpn.
How would be the best way to do that? I've readed about custom actions, nested installations, chainers, etc... but I'm newbie in this and I don't know where to start.
I'm working with Visual Studio 2012 with Installshild plugin.
Create "BootStrap" application (.exe) and add as prerequisite, what is running before you install starts. You also can check box ( not show in prerequisite list) and you Bootstrap app will be not in PreReq,. dialog

How to make an Exe Run as admin

I have a small application whose exe has to be worked in windows server 2008.
But in Win Server 2k8 it works properly only if the Option Run as administrator is selected, even if the user have admin previlege.
By selecting the property of that file to always run as admin, in the compatiblity tab will solve the issue.
But i have to enable this property while it installs.
And I am building the installer in Installshield 2009.
My question is how to enable this property from the installsield.
How can I make the Exe alwas run as admin.
Any one pleeasse hellpp......
Thanks In Advance..
Jijesh.
If your exe always requires administrative privileges, you should build it with a manifest that specifies requireAdministrator. If it only requires administrative privileges sometimes, it should probably launch itself with ShellExecute using the verb "runas". In neither case should you rely on the shortcut option.

Resources