Windows Limited User Installation

技术标签: C ++  视窗  com  Inno-setup.

I have a Win32 application that includes an EXE, an ActiveX control (DLL) and a COM server (EXE) and I am using Inno Setup 5 to build my installer. Many of our customers use limited user accounts where the user has no admin rights and because the COM components require to be registered (which writes to HKEY_CLASSES_ROOT), my setup file must run with elevated (admin) privileges. I think this in unavoidable (sadly, I can't use registration-free COM because of the EXE COM server I have). However, I would like to create an update installer that can be ran as a limited user and am looking for some advice.

What I am thinking is the following:

  • The initial setup (first time installation) installs the application into %ALLUSERSPROFILE%\Application Data\CompanyName\AppName instead of %PROGRAMFILES%. The COM components are registered as normal (as they won't already exist).
  • Subsequent updates (using a different Inno Setup script) will simply copy the new files into %ALLUSERSPROFILE%\Application Data\CompanyName\AppName. Hopefully even a limited user will have write access to this folder and as the COM components have already been registered, admin access won't be required.

This would mean that my customers could upgrade to the latest and greatest version without the hassle of using an Administrator account. Is this acceptable or is this likely to bite me on the backside? I'm pretty sure Google Chrome does something similar but as it has no COM components (as far as I can tell) even the initial setup can be as a limited user.

Any advice from others who have faced this issue would be very welcome indeed.

看答案

I don't know for sure, but I seem to recall COM servers support per-user installation, and maybe that goes for EXE servers as well.

If so, change your registration code to write information to HKEY_CURRENT_USER\Software\Classes 代替 HKEY_CLASSES_ROOT.

The COM infrastructure 应该 do the lookup first per-user and then per-machine.

It's worth an experiment anyway.


智能推荐

Installation did not succeed. The application could not be installed: INSTALL_FAILED_USER_RESTRICTED

第一次在手机上运行项目出现以下问题: Installation did not succeed. The application could not be installed: INSTALL_FAILED_USER_RESTRICTED   原因是用户权限不够,本人是红米7手机 打开手机进入设置-->更多设置-->开发者选项,打开允许USB安装  ...

Hadoop on Windows with Eclipse -06- Unpack Hadoop Installation

Unpack Hadoop Installation The next step is to unpack the downloaded and copied package. here To unpack the package follow these steps: Open a new Cygwin window. After the new Cygwin window appears, e...

11gR2 Grid Infrastructure Installation prerequisites On Windows

系统平台: 数据库版本:11.2.0.3.0 一、设置服务器HOSTS文件及主机名 分别将两台服务器上的C:\Windows\System32\drivers\etc\hosts文件,添加如下内容: # Public Network – (Public) 192.168.1.102 oradb1.bdstar.com oradb1 192.168.1.103 oradb2.bdstar...

Installation failed with message INSTALL_CANCELED_BY_USER. It is possible that this issue is resolve

1.使用小米系列的真机调试遇到的问题,弹框如下: Installation failed with message INSTALL_CANCELED_BY_USER. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then...

更改windows默认的User Shell Folders

在注册表中当前用户的配置信息如下: ----------------------------------------------------------------------------- Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explor...

猜你喜欢

【笔记】windows User目录的作用

windows user目录下这两个文件夹,一个是当前用户的文件夹,一个是对于所有用户的功用文件夹,这里面存放的是一些常用的配置,如图 当我们需要简化某些操作时,就需要在这里配置,比如配置国内镜像源的全局配置 自己新建了一个pip文件夹,里面放入了一个pip文件,文件内容是 [global] trusted-host=mirrors.aliyun.com index-url=http://mirr...

User Profile Path in Windows 7 Registry

User Profile Path in Windows 7 Registry  Shayadri Sharma |  November 15th, 2014 | Tips Every Windows version has a specific way of storing its data, program files, and user pr...

无意中发现看书也是一种美

2012年4月25日晚,翻翻自己喜欢的一门语言学习书(python参考手册),无意中发现书中夹着之前的明信片(有一次和同事一起去前门邓丽君音乐生活馆留下来的),感觉学习也是一种美!于是乎拍下这不经意的时刻,哈哈!...

香橙派OrangePi PC Plus开发板连接USB以太网卡测试说明

1) 目前测试过能用的 USB 以太网卡如下所示,其中 RTL8153 USB 千兆网卡插入开 发板的 USB 2.0 Host 接口中测试可以正常使用,但是速率是达不到千兆的,这点请 注意   2) 首先将 USB 网卡插入开发板的 USB 接口中,然后在 USB 网卡中插入网线,确 保网线能正常上网,如果通过 dmesg 命令可以看到下面的 log 信息,说明 USB 网卡...

计算机网络基础:Vlan,网关,dns吗,子网掩码等!面试必备!

很多朋友多次问到什么是网关、dns、子网掩码,三层交换机,它们定位的用途;确实,因为网络技术在弱电中确实应用非常广泛,我们平时在 vip 技术群中也是不断的讨论到网关、vlan、三层交换机或子网掩码等问题,今天我们就一起用通俗方式一次性了解清楚。 一、什么是 vlan? VLAN 中文是 “虚拟局域网”。LAN 可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机...

问答精选

How to extract beta coefficients for interaction effect in R?

I am examining the interaction between a continuous variable (bloodq) and a categorical variable with three levels (ER, RB, and WB). In order to see how the betas differ across tissue types, I would l...

what is the difference between Flatten() and GlobalAveragePooling2D() in keras

I want to pass the output of ConvLSTM and Conv2D to a Dense Layer in Keras, what is the difference between using global average pooling and flatten Both is working in my case. That both seem to work d...

How to invoke a test step with inputs at runtime from groovy script in SOAP UI?

I am writing a validation groovy script for a test step, intended to test a SOAP Web Service. Now, I want to call the same test step, with different input value from the groovy script. Is it possible?...

Wicket pagestore results wrong page

I have a problem with my web application with wicket. I am using wicket 6.14. I can't say exactly what the problem is, but I can describe the problem. I am using a self written pagestore, which uses h...

Unity load files from outside of resources folder

In unity is it possible to load a resource that is out side of the resources folder. I want the user to be able to set a textAsset variable from a file outside of the Assets directory entirely. You ca...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答