会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
人因梦想而伟大,因务实而成真!
人不快乐的根源,是因为你不知道要什么!你不知道要什么,所以你不知道去追求什么,你不知道追求什么,所以你什么也得不到!
博客园
首页
新随笔
联系
管理
订阅
如何读取.Net 安装包中用户输入的注册码呢?
了解到有二种方法
1:通过注册表的方法来得到。
2:在安装完前通过自定义安装类来获取,但我没有实现成功???
下面介绍第一种方法的实现。主要是遍历注册表的方法来得到的,感觉有些笨,在XP下测试通过。
Code
string
sLocal;
RegistryKey regLocal
=
Registry.LocalMachine.OpenSubKey(
@"
SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products
"
);
if
(regLocal
!=
null
)
{
string
[] subKeyNames
=
regLocal.GetSubKeyNames();
regLocal.Close();
foreach
(
string
subKeyName
in
subKeyNames)
{
string
key
=
@"
SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\
"
+
subKeyName
+
@"
\InstallProperties
"
;
regLocal
=
Registry.LocalMachine.OpenSubKey(key);
if
(
"
MyProductName
"
==
regLocal.GetValue(
"
DisplayName
"
).ToString())
{
//
set in the setup project proprety
productId
=
regLocal.GetValue(
"
ProductID
"
).ToString();
regLocal.Close();
break
;
}
regLocal.Close();
}
}
else
{
logger.Warn(
@"
No regedit key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products
"
);
}
if
(
string
.IsNullOrEmpty(productId))
{
logger.Warn(
"
Can not get the product id in the regedit
"
);
}
posted @
2008-10-07 15:05
jackzhang
阅读(
282
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部
公告