写入控制板卸载列表 开源
有一个疑问 不知道为什么版本号跟文件大小没生效 可能系统问题<火山程序 类型 = "通常" 版本 = 1 />
方法 写入控制板卸载列表 <类型 = 整数 注释 = "将卸载程序写入到 控制面板卸载列表" 返回值注释 = "0 成功1失败" 折叠 @禁止流程检查 = 真>
参数 程序名 <类型 = 文本型 注释 = "要显示的程序名称">
参数 发布者 <类型 = 文本型 注释 = "个人或**名">
参数 版本号 <类型 = 文本型 注释 = "程序版本">
参数 文件大小 <类型 = 文本型 注释 = "程序大小">
参数 卸载程序路径 <类型 = 文本型 注释 = "程序路径">
{
变量 错误代码 <类型 = 长整数>
卸载程序路径 = 卸载程序路径 + " /uninstall"
@ HKEY hKey;
@ LONG result;
@ result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall", 0, KEY_ALL_ACCESS, &hKey);
@ if (result != ERROR_SUCCESS) {
@ @<错误代码>=result;
@ return 1;
@ }
@ HKEY hSubKey;
@ DWORD disposition;
@ result = RegCreateKeyEx(hKey, @<程序名>.GetText (), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hSubKey, &disposition);
@ if (result != ERROR_SUCCESS) {
@ @<错误代码> =result;
@ RegCloseKey(hKey);
@ return 1;
@ }
@ result = RegSetValueEx(hSubKey,L"DisplayName", 0, REG_SZ, (BYTE*)@<程序名>.GetText (), static_cast<DWORD>(@<程序名>.GetLength() + 1) * sizeof (TCHAR));
@ if (result != ERROR_SUCCESS) {
@ @<错误代码>=result;
@ RegCloseKey(hSubKey);
@ RegCloseKey(hKey);
@ return 1;
@ }
@ result = RegSetValueEx(hSubKey, L"Publisher", 0, REG_SZ, (BYTE*)@<发布者>.GetText(), static_cast<DWORD>(@<发布者>.GetLength() + 1) * sizeof (TCHAR));
@ if (result != ERROR_SUCCESS) {
@ @<错误代码> =result;
@ RegCloseKey(hSubKey);
@ RegCloseKey(hKey);
@ return 1;
@ }
@ result = RegSetValueEx(hSubKey, L"Size", 0, REG_SZ, (BYTE*)@<文件大小>.GetText(), static_cast<DWORD>(@<文件大小>.GetLength() + 1) * sizeof (TCHAR));
@ if (result != ERROR_SUCCESS) {
@ @<错误代码> =result;
@ RegCloseKey(hSubKey);
@ RegCloseKey(hKey);
@ return 1;
@ }
@ result = RegSetValueEx(hSubKey, L"Version", 0, REG_SZ,(BYTE*)@<版本号>.GetText(), static_cast<DWORD>(@<版本号>.GetLength() + 1) * sizeof (TCHAR));
@ if (result != ERROR_SUCCESS) {
@ @<错误代码> =result;
@ RegCloseKey(hSubKey);
@ RegCloseKey(hKey);
@ return 1;
@ }
@ result = RegSetValueEx(hSubKey, L"UninstallString", 0, REG_SZ, (BYTE*)@<卸载程序路径>.GetText (), static_cast<DWORD>(@<卸载程序路径>.GetLength() + 1) * sizeof (TCHAR));
@ if (result != ERROR_SUCCESS) {
@ @<错误代码>=result;
@ RegCloseKey(hSubKey);
@ RegCloseKey(hKey);
@ return 1;
@ }
@ RegCloseKey(hSubKey);
@ RegCloseKey(hKey);
@ return 0;
}
赶紧过来学习学习 本帖最后由 创世魂 于 2023-11-12 10:57 编辑
直接用火山提供的写文本注册项 ()就好了,不用封装啊。应该这样就行了。
<火山程序 类型 = "通常" 版本 = 1 />
方法 软件_写注册项 <公开 静态>
参数 参_软件名称 <类型 = 文本型>
参数 参_主程序路径 <类型 = 文本型>
参数 参_卸载程序路径 <类型 = 文本型>
参数 参_版本号 <类型 = 文本型>
参数 参_作者 <类型 = 文本型>
参数 参_官网地址 <类型 = 文本型>
{
写文本注册项 (注册表根目录类型.本地机器, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + 参_软件名称 + "\\DisplayIcon", 参_主程序路径)
写文本注册项 (注册表根目录类型.本地机器, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + 参_软件名称 + "\\DisplayName", 参_软件名称+参_版本号)
写文本注册项 (注册表根目录类型.本地机器, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + 参_软件名称 + "\\DisplayVersion", 参_版本号)
写文本注册项 (注册表根目录类型.本地机器, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + 参_软件名称 + "\\Publisher", 参_作者)
写文本注册项 (注册表根目录类型.本地机器, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + 参_软件名称 + "\\UninstallString", 参_卸载程序路径)
写文本注册项 (注册表根目录类型.本地机器, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + 参_软件名称 + "\\URLInfoAbout", 参_官网地址)
}
创世魂 发表于 2023-11-12 10:51
直接用火山提供的写文本注册项 ()就好了,不用封装啊。
找不到命令名{:3_61:} ゞ情非得已Sky 发表于 2023-11-12 10:52
找不到命令名
是写文本注册项。和易语言的不一样了。 创世魂 发表于 2023-11-12 10:57
是写文本注册项。和易语言的不一样了。
命名没有统一开头不好找
页:
[1]