private void btnLogin_Click(object sender, EventArgs e)
{
//读注册表
RegistryKey regRead;
//读取HKEY_CURRENT_USER主键里的Software子键下名为“Test”的子键
regRead= Registry.CurrentUser.OpenSubKey( "Software\\login ",true);
if(regRead==null) //如果该子键不存在
{
MessageBox.Show("没有保存账号!");
}
else
{
HtmlElement btnSubmit = webBrowser1.Document.All["staticsubmitid"];
HtmlElement tbUserid = webBrowser1.Document.All["staticusernameid"];
HtmlElement tbPasswd = webBrowser1.Document.All["staticpasswordid"];
if (tbUserid == null || tbPasswd == null || btnSubmit == null)
return;
object nameobj = regRead.GetValue("name"); //读取“Name”项的值
object passobj = regRead.GetValue("pass"); //读取“Name”项的值
//label6.Text = nameobj.ToString();
tbUserid.SetAttribute("string",nameobj.ToString());
tbPasswd.SetAttribute("value",passobj.ToString());
btnSubmit.InvokeMember("Click");
}
//关闭该对象
regRead.Close();
}
总是提示
{"未将对象引用设置到对象的实例。"}
这是为什么?
如果改为 tbUserid.SetAttribute("string",(string)nameobj);
tbPasswd.SetAttribute("value",(string)passobj);
获取到的是空值。
{
//读注册表
RegistryKey regRead;
//读取HKEY_CURRENT_USER主键里的Software子键下名为“Test”的子键
regRead= Registry.CurrentUser.OpenSubKey( "Software\\login ",true);
if(regRead==null) //如果该子键不存在
{
MessageBox.Show("没有保存账号!");
}
else
{
HtmlElement btnSubmit = webBrowser1.Document.All["staticsubmitid"];
HtmlElement tbUserid = webBrowser1.Document.All["staticusernameid"];
HtmlElement tbPasswd = webBrowser1.Document.All["staticpasswordid"];
if (tbUserid == null || tbPasswd == null || btnSubmit == null)
return;
object nameobj = regRead.GetValue("name"); //读取“Name”项的值
object passobj = regRead.GetValue("pass"); //读取“Name”项的值
//label6.Text = nameobj.ToString();
tbUserid.SetAttribute("string",nameobj.ToString());
tbPasswd.SetAttribute("value",passobj.ToString());
btnSubmit.InvokeMember("Click");
}
//关闭该对象
regRead.Close();
}
总是提示
{"未将对象引用设置到对象的实例。"}
这是为什么?
如果改为 tbUserid.SetAttribute("string",(string)nameobj);
tbPasswd.SetAttribute("value",(string)passobj);
获取到的是空值。
名称 类型 数据
name REG_SZ 1111
pass REG_SZ 22222
但是这页读取不到。。
这是写入的代码
RegistryKey regWrite;
//往HKEY_CURRENT_USER主键里的Software子键下写一个名为“Test”的子键
//如果Test子键已经存在系统会自动覆盖它
regWrite = Registry.CurrentUser.CreateSubKey( "Software\\login ");
//往Test子键里添两条数据项,一条名为 "Name ",另一条名为 "Sex "
//值分别是 "luolie ", "男 "
regWrite.SetValue( "Name ",textBox1.Text);
regWrite.SetValue( "Pass ", textBox2.Text);
//关闭该对象
regWrite.Close();
regWrite = Registry.CurrentUser.CreateSubKey( "Software\\login ");
regWrite.SetValue( "Name ",textBox1.Text);
regWrite.SetValue( "Pass ", textBox2.Text);
//关闭该对象
regWrite.Close();
你写在CurrentUser下,写入和读取是在同一个账户下吗?另外,从msdn上来看value的名字不是case-sensitive的。
但是看你的写入时有空格的,
regWrite.SetValue( "Name ",textBox1.Text); 把空格删掉试一试。