VB6 Application Windows 7 Post-Install Not Working Correctly For Standard Users

SaltySoda

After installing my VB6 application on a administrator account, I want to run it on a standard user account. Immediately after double clicking the shortcut Windows Installer starts up and it asks me to provide the path to the installation package. If I cancel this, I am presented with an error dialog that says "Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item." The error dialog contains the path to the installer in the titlebar of the dialog, the path in the titlebar points to the admin users' desktop.

When I run the shortcut as Admin the application works fine and doesn't launch Windows Installer. The application also works fine if I completely turn off UAC.

Please note that the application is installed "per-machine" and doesn't require admin privileges to run according to its manifest. The installer was created using Advanced Installer 11.1 Enterprise Edition.

I have added permissions to "Everyone" for all the registry keys in the registry tab of Advanced Installer. I do however have custom actions that register my COM dll's after the installation is done copying the files to the filesystem. It would be almost impossible to give these keys the same permissions because there are quite alot of keys being added when registered this way.

Am I correct in saying that Windows Installer is repairing my application so that the standard user can use it? After I let the installer do its thing I must restart my pc, after the restart the application also works fine.

I have also tried to create a .sdb using Microsoft Compatibility Administrator to set the "RunAsInvoker" compatibility fix for the application, this also doesn't seem to have any effect whatsoever. Furthermore I also gave "Everyone" FullControl of all the folders and files that my application uses, this also doesn't do anything.

When I run ProcessMonitor, I don't see any AccessDenied errors. All the registry access though is set to DesiredAccess:Maximum Allowed. Most registry access is also pointing to HKCU hive, this is expected however as most keys from my application reside there.

Am I missing something here, is there some permission that is being set that I am not aware of? Is it possible that some registry value is being modified that requires admin privileges, and if so, is it possible to allow my application access to all the keys that are added by the installer? Manually setting the permissions on each key is a pain because of the somewhat 100+ keys that are added.

Bogdan Mitrache

Indeed, Windows Installer is detecting that key members of your components are missing for the non-admin user and tries to launch an automatic repair. It is nothing wrong with that, a lot of applications that install per-user resources use this technique.

The problem is that your non-admin user does not have access to the MSI that installed the application, so it cannot run the repair. This can happen because:

1) you have the installer generated from Advanced Installer as an EXE (with MSI inside) and after the installation finishes the MSI and CAB files get deleted.

To solve this situation go to Media page and enable the option "Do not delete extracted files".

2) you have the installer generated from Advanced Installer as an EXE (with MSI inside) and ts extraction path is set to a per-user location, which resolves to the admin user folder, to which your new user does not have access.

To solve this go to Media page and change the extraction folder to something like this:

[TempFolder][|Manufacturer][|ProductName] [|ProductVersion]\install

This will make your EXE to extract all its resources in the system Temp folder, making it accessible to all users from the machine, admins and non admins.

NOTE The above apply only if you have an EXE generated by Advanced Installer as setup package. You can see what package type is Advanced Installer generating from the above mentioned Media page.

If this does not solve the problem you should automatic verbose logging (see last part of the linked article) and see what is the installer writing in it after you allow it to run, i.e. login with admin credentials. The log should tell us exactly what it is missing and why the MSI is re-launched by Windows Installer.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Windows 7上某些vb6数据网格的问题

来自分类Dev

在Windows 7上注册vb6 exe文件时出现错误(意外错误;退出)

来自分类Dev

VB6应用程序Windows 7安装后对于标准用户无法正常工作

来自分类Dev

Windows 7 64位中的VB6 SetWindowLong导致刷新问题

来自分类Dev

VB6 MSCOMCTL.OCX在Windows 7上未加载问题

来自分类Dev

在Windows 7上注册vb6 exe文件时出现错误(意外错误;退出)

来自分类Dev

VB6 MSCOMCTL.OCX在Windows 7上未加载问题

来自分类Dev

如何使用TSL加密强制VB6进行POST?

来自分类Dev

如何使用TSL加密强制VB6进行POST?

来自分类Dev

Windows 10上的VB6通用控件

来自分类Dev

在Windows 7上npm install restify错误?

来自分类Dev

vb6到vb.net的转换'FileName'不是'System.Windows.Forms.RichTextBox'的成员

来自分类Dev

在Windows Embedded Standard 7 OS上设置日期和时间

来自分类Dev

禁止在Windows Embedded Standard 7中使用USB

来自分类Dev

不安装 Windows Embedded Standard 7 WEDU 更新

来自分类Dev

如何在Windows 8.1 x64上安装VB6 SP6?

来自分类Dev

Null Session Share not working on Windows 7

来自分类Dev

为Windows 7编写的应用程序可以在Windows Embedded Standard 7 OS上运行吗?

来自分类Dev

vb6在win 7中读写文本文件

来自分类Dev

Code to install a printer driver works on Windows 7 but not Windows 8

来自分类Dev

Windows 10中的VB6无法实现IDTExtensibility2

来自分类Dev

VB6应用程序能否在Windows 10上运行

来自分类Dev

在Windows 10上安装VB6应用程序时缺少DLL

来自分类Dev

如何在Windows 10中的VB6上编译Winsock Control 6.0?

来自分类Dev

Windows 10家庭错误与网络驱动器上的vb6 inet控制

来自分类Dev

Windows 10上VB6应用的兼容性问题

来自分类Dev

How to package and install Windows 10 application on other computers

来自分类Dev

CPTScatterPlotInterpolationCurved Type not working Correctly

来自分类Dev

VB6不要在窗体调整大小的Windows 10上自动激活子窗体

Related 相关文章

  1. 1

    Windows 7上某些vb6数据网格的问题

  2. 2

    在Windows 7上注册vb6 exe文件时出现错误(意外错误;退出)

  3. 3

    VB6应用程序Windows 7安装后对于标准用户无法正常工作

  4. 4

    Windows 7 64位中的VB6 SetWindowLong导致刷新问题

  5. 5

    VB6 MSCOMCTL.OCX在Windows 7上未加载问题

  6. 6

    在Windows 7上注册vb6 exe文件时出现错误(意外错误;退出)

  7. 7

    VB6 MSCOMCTL.OCX在Windows 7上未加载问题

  8. 8

    如何使用TSL加密强制VB6进行POST?

  9. 9

    如何使用TSL加密强制VB6进行POST?

  10. 10

    Windows 10上的VB6通用控件

  11. 11

    在Windows 7上npm install restify错误?

  12. 12

    vb6到vb.net的转换'FileName'不是'System.Windows.Forms.RichTextBox'的成员

  13. 13

    在Windows Embedded Standard 7 OS上设置日期和时间

  14. 14

    禁止在Windows Embedded Standard 7中使用USB

  15. 15

    不安装 Windows Embedded Standard 7 WEDU 更新

  16. 16

    如何在Windows 8.1 x64上安装VB6 SP6?

  17. 17

    Null Session Share not working on Windows 7

  18. 18

    为Windows 7编写的应用程序可以在Windows Embedded Standard 7 OS上运行吗?

  19. 19

    vb6在win 7中读写文本文件

  20. 20

    Code to install a printer driver works on Windows 7 but not Windows 8

  21. 21

    Windows 10中的VB6无法实现IDTExtensibility2

  22. 22

    VB6应用程序能否在Windows 10上运行

  23. 23

    在Windows 10上安装VB6应用程序时缺少DLL

  24. 24

    如何在Windows 10中的VB6上编译Winsock Control 6.0?

  25. 25

    Windows 10家庭错误与网络驱动器上的vb6 inet控制

  26. 26

    Windows 10上VB6应用的兼容性问题

  27. 27

    How to package and install Windows 10 application on other computers

  28. 28

    CPTScatterPlotInterpolationCurved Type not working Correctly

  29. 29

    VB6不要在窗体调整大小的Windows 10上自动激活子窗体

热门标签

归档