I've got an MSI installer built with Wix, and as is common I want a tickbox on the Finished page to launch the app. I've followed the method here to do this: http://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/run_program_after_install.html
It works, but the problem is the application window is hidden by any other windows that are on the screen, when it starts up it doesn't show at the front. I don't know why this is happening? Is there a way to fix this, or do I have to create another custom action to bring the window to the front?
Related
I have a background process running on the user’s macOS machine. Its job is to detect whenever any app is launched on the machine. Currently, I am detecting the NSNotificationCenter’s NSWorkspaceDidLaunchApplicationNotification event. This works perfectly for detecting when an app is freshly launched (i.e. the app had no instance already running at that time).
But, on macOS, if we click the red cross button at the top-left corner, it generally closes the app window and the app continues to run in the background. This is also evident by the app icon visible on the dock with the dot indicator below it. If I click the app icon on the dock and then launch it, the NSWorkspaceDidLaunchApplicationNotification event won’t be triggered.
To track such events, I tried using the NSWorkspaceDidActivateApplicationNotification event. Using this event, I was able to detect all the app launch scenarios. The problem is that this event gets triggered whenever the app comes into focus such as switching windows using command+tab, clicking on its dock icon, changing between two apps, …
Is there a way to filter out these triggers or identify which action led to the trigger? Or is there some other event/ method I can listen to which gives the required filtered triggers? I only want to detect scenarios where a new window of the app is created.
What you seems to want is two different things, as was mentioned in comments, which should be processed separately to be reached.
To detect app launch, when the new process is started. You could use the NSWorkspaceDidLaunchApplicationNotification if it is enough (usually for visual user apps), or kqueue if it is not, or even EndpointSecurity framework to rule them all.
To track the window(s) in the already launched app. Visually, if the white dot under app dock icon is there, the app is still launched.
There is an Accessibility framework for this task, you could track the event of window creation, window destruction, get count of windows from target process id, visibility state and etc.
It is a bit abandoned and has no updates since maybe release, but it will work for you in most cases.
I'm developing the installer using WixSharp. I want to track (catch, subscribe etc) the event when user clicks the cancel button (cancel / abort installation).
I want to track during the stage user inputs the data and during the installation files process as well. It's better no changing the standard UI dialogs but using custom action or something. But if changing UI is the only way it's OK.
The project UI type is WixUI_InstallDir.
Thanks for attention.
You can't track this button click if you use this project type. But you can customize this project type if you adds this dialogs forms in your project
WixSharp Managed Setup - Cusom UI
Just add dialogs from this project and cancel handler (i think you know how to do it in winforms). Don't forget to check Project.cs, there are dialogs sequence and ManagedUI parameter set.
I'm building an installer using Wix 3.11, and I've been using the Advanced UI template in order to get the per-machine/per-user installation choice. My issue is that the welcome screen doesn't show. Or more specifically, the welcome screen flashes at the beginning of the installer and goes straight to the License page without any user input. I've noticed that this doesn't happen on some of the other UI templates.
Has anyone else seen this? I even started a fresh project, and it does the same thing.
WixUI_Advanced doesn't have a welcome screen. The first screen (AdvancedWelcomeEulaDlg) shows the EULA. There's another modeless dialog (PrepareDlg) shown while the AppSearch standard action is running; if that happens quickly, it can appear to flash.
I have two msis and packed them into a bootstrapper EXE installer. But I want to have the ability to launch the application after installation. I know there's a way to achieve this by adding a 'launch' button. Then there will be two buttons when the installation succeeded. But is there a way to add a custom action to the 'close' button or remove the 'close' button?
Thanks!
Wix Burn UI is not a powerful for now, as far I know, however you can do anything you want, it's just matter of time you're willing to put in. Burn UI does not play well with properties for now, you can't even create custom TextBox to fill up a property, but if time is not a problem:
1) You can download Wix source, and modify everything the way you want it to be, making it reusable.
2) You can create custom WiX Burn UI(I like WPF+MVVM), which shouldn't take too much time, and should be very interesting. There you can include anything your soul wants.
3) You can disable WIx BURN UI and use MSI internalUI,
this is good example; http://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/run_program_after_install.html
That will allow you to configfure everything, such as "Close" button having a custom action. + removing Close button by overriding custom dialogs(you can download them from wix, *.THM files)
No, neither of those is possible.
I want to enhance my UI dialog of MSI using Wix. Can you point out me the best tool which provides an option to create such UI? Also, is there possible to show animated GIF image in MSI wizard
You want to look into "Embedded UI" (also sometimes called "External UI"). But once you go down this path, you have to provide the entire UI, and nothing in InstallUISequence gets run (like Costing).
There is a sample Embedded UI in Wix that demos a WPF UI and a prgress bar that reacts to what is going on in the MSI installation.
A middle-ground option is to create some Custom Actions that display a UI. I do this to accomplish things like looking up a user in AD, search for SQL Servers on the network, browsing for databases in a SQL Server, and browsing for SSL Certificates. You can then trigger these custom actions through a push button.
As far as animated GIFs go - as far as I know they are not supported.
You could look at using burn
http://robmensching.com/blog/posts/2009/7/14/Lets-talk-about-Burn