Can you force Inno Setup to override or ignore ArchitecturesAllowed with a command line param? - inno-setup

We are using ArchitecturesAllowed and it is working fine at present.
Is it possible to use something like a command line parameter to instruct Inno to "ignore ArchitecturesAllowed, just install it anyway"?
I don't see anything like this in https://jrsoftware.org/ishelp/index.php?topic=setupcmdline. I know its possible to create custom command line params but I don't see how programmatically that would allow for this.
This might be useful for us in some strange corner cases where our installer does not support a particular architecture but we need to work around a customer problem. (Specifically I'm thinking of Windows 11 running in a VM on a Mac, but there could be other cases.)
I know there are approaches like in Can Inno Setup detect Windows11 on ARM64 hardware which can emulate x64? which allow circumventing ArchitecturesAllowed entirely, but that seems like an alternative approach.
Also I can see that the error message can be customized; but that doesn't change the actual setup behavior: Show a custom message for unsupported architectures

No.
Using the approach you know (Can Inno Setup detect Windows11 on ARM64 hardware which can emulate x64?) combined with a custom command line switch is the only way.

Related

Changing restart message on Inno Setup Prepare To Install page

I am building an installer in Inno Setup v6.2.1 with prerequisites, which include .NET, runtimes, and KB fixes (Windows 7 SP1). The goal is to do potentially several reboots depending on if the machine is missing KBs or .NET etc.
I am able to achieve what I want so far using PrepareToInstall and can change the text by returning the appropriate string. No problems... however I can't find a way of changing the.
Setup must restart your computer. After restarting your computer, run Setup again to complete the installation of xxxxx
Because I am creating a runonce entry, the installer will automatically run after reboot (which it does). The text "run Setup again" is not relevant in my situation and I want to change the text to say that the installer will continue once you restart.
I have tried to find where to change this text but with no success. I assume that PreparingMemo might be the candidate but no luck or not sure how to use it. Any help would be appreciated.
See Handling and customizing errors and messages in Inno Setup.
This particular message is defined by the PrepareToInstallNeedsRestart message.
You can change it in the [Messages] section:
[Messages]
PrepareToInstallNeedsRestart=Setup must restart your computer. After restarting your computer, the Setup will continue to complete the installation of [name].%n%nWould you like to restart now?
If you need to change the message text dynamically, assign WizardForm.PreparingLabel.Caption. E.g. from CurPageChanged(wpPreparing) event.

How can my application assign a keyboard shortcut in the system from Flatpak?

I am the developer of Planner and I am having a problem assigning a keyboard shortcut to the current system.
Planner is a task manager and has a built-in application called Quick Add that through a keyboard shortcut that can be run regardless of whether Planner is running.
To install this keyboard shortcut I use the following service.
This works perfectly if I build Planner from the repository. However, I have an error if I execute the same function if I build Planner from Flatpak
** (com.github.alainm23.planner:2): WARNING **: 15:54:36.510: CustomShortcutSettings.vala:28: Schema "org.gnome.settings-daemon.plugins.media-keys" is not installed on your system.
I know that I can't access the scheme of org.gnome.settings-daemon.plugins.media-key And I need a hole to edit the dfcon configuration of the system.
The question is how can I do that. If anyone could help me I would be very grateful.
Flatpak by default doesn't allow editing GSettings in a way that affects the rest of the desktop, since rouge applications could use that ability to do things with security and privacy implications, like set or unset proxy servers.
So it would be best to look into alternative ways to make this possible - perhaps provide people with instructions to set it up manually, or request and/or contribute proper portal support for setting global keyboard shortcuts.
If you still really want to implement this, check the link above for the details on the sandbox hole you need to open to make it work.

Node.js installation (windows installer) terminates prematurely on windows 10 64-bit

After going through a windows 10 re-installation due to a windows update crashing my laptop, I was left with re-installing many applications. One of them being node.js. When I tried to install it through the windows installer, I kept getting 'setup wizard ended prematurely because of an error message'. I am not sure what the problem is. I used x64 version which is what my OS is and there is no nodejs folder in program files. When I logged the installation this message popped in a lot of the lines has no eligible binary patches. Before the no eligible lines there were error logs such as:
'WixSchedInternetShortcuts: Error 0x8007000d: failed to add temporary row, dberr: 1, err: Directory_'
'WixSchedInternetShortcuts: Folder 'ApplicationProgramsFolder' already exists in the CreateFolder table; the above error is harmless'
If that is not enough information please advice me on how to send the full logs without spamming huge text in the thread. Thank you.
The MSI log file:
https://gist.github.com/luki2000/ab00476127d54aaf610d8bda84d40a64
Maybe try to search the log for "value 3" as explained by Rob Mensching in his blog. Doing so will find the locations in the log file that describe errors of significance.
Many people use dropbox, gdisk or similar to post logs. Some put it on github (just a sample log for OP, leaving in for reference). Check that last link, is that the same problem you see perhaps? (search for "value 3" as explained above - without the quotes of course). Looks like there is an error creating an Internet shortcut. Perhaps that is a Windows 10 problem? I will take a quick look.
I am betting Bob Arnson knows what this problem is outright. He will probably give us the real answer, see below for my workaround.
The correct thing to do overall, would probably be to communicate the problem back to the Node.js guys so they can fix the problem once and for all.
UPDATE: Maybe see if this answer helps you: node.js installer failing with 'CAQuietExec Failed' and 1603 error code on Windows 7. Essentially un-check Event tracing(ETW) in the setup's feature dialog - or you can try to launch the MSI from an elevated command prompt.
UPDATE: There seem to be two Internet shortcuts configured for this MSI in the WixInternetShortcut table. I would just create a transform to remove these two shortcuts and try a reinstall. If you feel bold and fearless and like to break the law, you can delete the two rows from the table and just save directly to the MSI itself. This is never the right thing to do if you are a deployment specialists. The original MSI is sacred, but if this is for your own system and you need to get something done, that would work. Then you just install the MSI direct afterwards. Otherwise you can install the transform after creating it with a simple command line:
msiexec.exe /i node-v8.11.2-x64.msi TRANSFORMS="C:\MyTransform"
You can create the transform using Orca, InstEd or SuperOrca or any commercial tool that supports creating transforms.
In case you don't know, transforms are little database fragments that are applied to the original MSI (which is also a database under the hood). After the transform is applied the in-memory version of the MSI is the MSI + the changes from the transform.

Can I deactivate a monitor/display with node/electron?

I, I'm writing an app with electron (http://electron.atom.io/). I would like to deactivate the monitor/display of the pc and only activate it again, when something in the app happens (for energy-saving). Is there a way to do this?
The only think I found, is the powerSaveBlocker (http://electron.atom.io/docs/api/power-save-blocker/) which doesn't help me...
You'll need to use native system APIs to do this, on Windows you can use one of the solutions proposed in Turn on/off monitor.
One of the ways you can do that is by executing batch files from electron/node in Windows , shell scripts in Linux and whatever MAC OS uses to execute commands.
These scripts would contain the OS level commands to turn on/off the display which are easily available .
When to fire these scripts would depend on your application logic .

Troi plugin function not working in FileMaker WebDirect

For purposes of being able to select from multiple file from the computer or network, I am using the following script command which works great in native FileMaker 14:
Set Variable [$dosFN; value: TrFile_SelectFileDialog( " -AllowMultipleFiles" ; "Please select one or more files" ;)]
In testing to make sure this works, I am doing a custom dialog to display the value of $dosFN and an example that successfully comes back would show:
From drive as:
C:\Files\img1.jpg
C:\Files\img2.jpg
or from network as:
\\ACI-2008-01\Files\img1.jpg
\\ACI-2008-01\FIles\img2.jpg
What is not work is when I attempt the same thing in a webdirect environment which is only showing the following when I perform the same script without even a file selection dialog box:
$$-4222
So how can I possibly make this work as desired in a webdirect environment?
This is not possible. This call is supposed to display the select file dialog. The plug-in does this by calling a function from one of the system libraries. In Web Direct you work with the database via a browser. Behind the scenes FileMaker silently converts the layouts and scripts into something that can run in the browser (lots of HTML, CSS, and JavaScript). But it cannot convert all and this call is one of things it cannot convert. As a result the plug-in only runs on the FileMaker server in a completely different environment and has no way to make a system call on another computer.
You may have better luck with FileMaker's own Insert File script step. It seems to be compatible with Web Direct. It cannot select multiple files though. (Also, other plug-in functions may still work in Web Direct but keep in mind that they actually run on the server, not the computer that runs the browser.)
The latest version of Troi file seems to be webdirect compatible, but it has to be installed on the FileMaker server as a server-side plugin. In any case check their documentation first, as it is usually quite detailed and if it does not help, you might get in touch with their support.
From how I understand it, the plug-in is running server side and has no way to display an interface on the client side (web browser). I do not believe there is a way to do what you are trying to do with Troi File, but you may just need to contact Troi.

Resources