|
有一个疑问 不知道为什么 版本号 跟文件大小没生效 可能系统问题
<火山程序 类型 = "通常" 版本 = 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;
}
|
|