用C#怎么实现软件第一次启动的时候,把当前日期写入注册表,等下次启动的时候,判断软件的试用期是否到期

就像我们用的一般软件一样,30天后就不能使用了!这个安装后,第一次启动的时间如何让写入注册表啊!... 就像我们用的一般软件一样,30天后就不能使用了!这个安装后,第一次启动的时间如何让写入注册表啊! 展开
 我来答
无敌腰
2011-02-24
知道答主
回答量:22
采纳率:0%
帮助的人:0
展开全部
1.取得服务器时间
2.加密服务器时间
3.启动时验证注册表是否存在该键(使用6中的方法验证)
4.若注册表不存在该键,将时间写入客户机注册表
try
{
RegistryKey rsg = null;
Registry.LocalMachine.CreateSubKey("SOFTWARE\\xxx");
rsg = Registry.LocalMachine.OpenSubKey("SOFTWARE\\xxx", true);
rsg.SetValue("键", 加密后的服务器时间);
rsg.Close();
err = "";
return true;
}catch(Exception ex)
{
//异常处理
}
5.若客户机存在该键,验证时间是否过期
6.验证时如下
try
{
RegistryKey rsg = null;
rsg = Registry.LocalMachine.OpenSubKey("SOFTWARE\\xxx", true);
if (rsg.GetValue("键") != null)
{
if (code.Equals(rsg.GetValue("键").ToString()))
{
rsg.Close();
}
rsg.Close();
}catch(Exception ex)
{
//异常处理
}
TomasRen
2011-02-24 · TA获得超过173个赞
知道小有建树答主
回答量:175
采纳率:100%
帮助的人:154万
展开全部
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
namespace BaiDuKnown
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
private RegistryKey rsgTime = null;
private void UserControl1_Load(object sender, EventArgs e)
{
rsgTime = Registry.LocalMachine.OpenSubKey("SOFTWARE\\YourSoftWareName", true);
string oldTime=rsgTime.GetValue("OldTime").ToString();
if (String.IsNullOrEmpty(oldTime))
{
Registry.LocalMachine.CreateSubKey("SOFTWARE\\YourSoftWareName");
rsgTime = Registry.LocalMachine.OpenSubKey("SOFTWARE\\YourSoftWareName", true);
rsgTime.SetValue("OldTime", DateTime.Now);
}
else
{
string dd = Convert.ToString(rsgTime.GetValue("OldTime"));
DateTime t1 = Convert.ToDateTime(dd);
DateTime t2 = DateTime.Now;
TimeSpan span = t1.Subtract(t2);

int days=Math.Abs(span.Days);
if (days <= 30)
{
MessageBox.Show("你的使用时间还剩" + span.TotalDays.ToString());
}
else
{
MessageBox.Show("你的软件已经过期");
}
}
}
}
}
更多追问追答
追问
这是是你自己写的吧!不是网上抄的吧!呵呵!
追答
是的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友699a4df
2011-02-28 · TA获得超过1375个赞
知道小有建树答主
回答量:1079
采纳率:0%
帮助的人:349万
展开全部
恩,建议你看一看。。。using Microsoft.Win32;
RegistryKey

相关方面的知识,
无非就是打开相应的母键,然后,新建立一个键值,写入键值,
每次在软件启动的或是在FROM LOAD代码中读取,键值,然后和现在的时间 相比较...
追问
恩!谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孤傲灵魂→玄烨7c3ec
2011-02-24 · TA获得超过297个赞
知道小有建树答主
回答量:493
采纳率:0%
帮助的人:155万
展开全部
先新建一个注册表文件,里面写新建注册表项,每次开启程序的时候先检测,如果第一次执行,写入新注册表项,不是则检查
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
elvdhdi
2011-03-05 · TA获得超过267个赞
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:123万
展开全部
oft.Win32; //声明///引用
RegistryKey reg;reg = Registry.ClassesRoot;

具体实现你百度一下就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式