通过注册表
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall
使得软件的卸载程序 显示在控制面板
问题: 使用控制面板卸载的时候提示没有权限
错误截图:
QT5 + VS 2019
1.使用runas 不合适,要考虑用户的体验度,尽量傻瓜式安装
2.本来使用的QSetting ,用win API RegCreateKeyEx 还是不行
3.修改UninstallString字段为脚本也不行
4.现在安装程序 uac 为管理员
requireAdministrator (/level='requireAdministrator') 是 (/uiAccess='true')
5.发现到的问题
C:\Program Files\
安装在在该路径可以正常卸载
能在控制面板正常卸载程序
你是自己的安装程序?用现成的打包工具,都能很好解决uac问题,不必重复造轮子了。
【以下回答由 GPT 生成】
首先,为了在控制面板中能够正常卸载程序,以下是一些优化的建议和解决方案:
HKEY hKey;
LPCTSTR subKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{YourProductGuid}";
DWORD dwDisposition;
RegCreateKeyEx(HKEY_CURRENT_USER, subKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition);
LPCTSTR valueName = "UninstallString";
LPCTSTR valueData = "{YourUninstallScriptPath}";
RegSetValueEx(hKey, valueName, 0, REG_SZ, (LPBYTE)valueData, strlen(valueData) * sizeof(TCHAR));
RegCloseKey(hKey);
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
将程序安装在默认的系统路径下:如果只有安装在"C:\Program Files\"路径下的程序能够正常卸载,那么请确保您的程序安装在此默认路径下。这可能与UAC和权限有关。如果您的程序必须安装在其他路径,请确保在安装过程中正确设置了安装路径和权限。
确保没有其他权限限制:检查您的程序是否需要在运行时访问其他资源或目录。有时候,权限会被限制在程序可访问的范围内,导致无法卸载。确保您的程序拥有足够的权限来访问和修改相关的文件和目录。
如果您已经尝试了以上的建议和解决方案,并且问题仍然存在,那么问题可能更加复杂,我无法给出具体的解决方案。在这种情况下,我建议您咨询更专业的IT支持人员或开发人员来获取更准确的帮助。