获取系统唯一值。。。。
admin 发表于 2010-08-28 | 来源:互联网 | 阅读:

在系统启动后, 获取一个唯一值。。。 要启动后。。。多次获取都是一样的。

再次启动后又是一个新的值。

类似系统启动时间那样的值。。

已经有26 个评论
  1. my159 说:

    Guid.NewGuid().ToString() +"-" + System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss-fff")+"-"+System.Environment.TickCount.ToString()

  2. dddylwlw 说:

    你就是用那个上网时间吧,每次重新启动后,时间不一样

  3. rongxin 说:

    认真想还想不到简单的方法:)做一个系统服务,该服务启动的时候取得唯一值,并在电脑重起前提供该唯一值。

  4. nrc001 说:

    那个强度太低了。。。要要个更复杂的。DateTime dt = DateTime.Now.AddMilliseconds(-Environment.TickCount);return dt.Ticks.ToString();我就这样来了5次。。。5次结果都不一样。

  5. 风子 说:

    Guid.NewGuid().ToString() +"-" + System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss-fff")+"-"+System.Environment.TickCount.ToString()三个都不行。。。加一起就更不行呢。

  6. nashliu 说:

    http://www.weste.net/2007/11-25/14452390055.html

  7. hahamy 说:

    CPU 标识码!硬盘标识码等等

  8. 96789123 说:

    不要硬件ID。。。

  9. water20042 说:

    Guid.NewGuid().ToString() +"-" + System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss-fff")+"-"+System.Environment.TickCount.ToString()三个都不行。。。加一起就更不行呢。为什么不行?给出测试数据

  10. lchz 说:

    Guid.NewGuid().ToString() +"-" + System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss-fff")+"-"+System.Environment.TickCount.ToString()三个都不行。。。加一起就更不……42f67816-54d5-4e56-94ae-760b608fbb45-2010-08-27-04-46-03-171-9261703a06d4737-7381-49d4-a431-b79fb0b11f9f-2010-08-27-04-46-03-375-9261906dd8a4a79-4b00-4103-8bb9-b28c04416d73-2010-08-27-04-46-03-562-9262093d563d2b3-e5bd-4b0d-bcbb-55d85c670737-2010-08-27-04-46-03-734-926226584a3404e-8ce5-485c-b1a3-bb458262da3f-2010-08-27-04-46-03-906-9262437d4417792-de6a-48e2-a48b-2d41d79ff7d2-2010-08-27-04-46-04-078-9262609b5d873bf-8348-47c9-8e00-8f20ac2637a2-2010-08-27-04-46-04-250-9262781看清楚吗。。。我要的是 系统启动后。。。多次获取都是一样的。

  11. dovemail 说:

    Guid.NewGuid()这个就是唯一的了,怎么三个加起来都不行呢

  12. water20042 说:

    我晕,原来是我想歪了

  13. look 说:

    GUID 不行呢。。。我来5次 5次都不一样。。我就是要在一个电脑上多个程序里面。 用同样的方法。 获取一个值,值都是一样的 (不要硬件ID类的)当系统在次启动后。。。。他们获取的又是一个同样的唯一值。(和上次重启时的不一样)

  14. dddylwlw 说:

    用服务也不行呀。。。太麻烦。。。而且别人可以把服务关了,,在开次。

  15. mikeyao210 说:

    不知道你要这个值有什么用,要不要区分多台机器的唯一值。

  16. my159 说:

    GUID你開機後取出來,就保存起來,每次開機都更新一下,這可以嗎?如樓上,你拿來有什麼用?

  17. water20042 说:

    做用户控制哈。。。不想用硬件ID。。一来麻烦。。多系统。。多环境。。就是控制一个用户可以在一个电脑上多次登录,,,,不能在多台电脑上 多次登录。

  18. 405290688 说:

    用APINtQuerySystemInformation 获取系统信息这里http://blog.csdn.net/afxid/archive/2006/06/09/784526.aspx

  19. bobowanzi 说:

    嗯,明白你的意思了,你的难点不在“唯一值”,而在于,怎么限制一个帐号在多台机器使用我的做法:仍然可以使用1楼的代码,取到一个值后,保存到注册表里,软件启动后就去注册表读取这个值,这样可以保证每次启动后取后的值都是相同的,也可以保存每台机器取到的值不一样但问题是:如果有用户拿到注册表中的值,到其他机器使用,就没有办法了所以,仍然会设置到硬件

  20. dddylwlw 说:

    所以我要找一个 软的 唯一值哈。。不要保存到文件,注册表。不要硬的。。   貌似就一个启动时间呢。。不知道 系统启动的时候。。有那些值,,,会存在什么地方。。。我把他们一起 MD5次就行了。

  21. 405290688 说:

    縴豬看ㄆ阝日 wyuxiao729学习来了

  22. bobowanzi 说:

    你第一次启动,写个文件不就完了。真啰嗦。

  23. awaywind 说:

    ————————–取该程序的进程ID 应该就是了—————————-

  24. lee 说:

    所以我要找一个 软的 唯一值哈。。不要保存到文件,注册表。不要硬的。。 启动时间倒是可以知道,WMI查询Win32_OperatingSystem的LastBootUpTime,结果类似:  LastBootUpTime  20100827232335.375199+720如果可以写到注册表,倒是可以写到一处关机就丢失的地方。

  25. 405290688 说:

    var   StartTime:TDateTime;begin   StartTime:=Now-GetTickCount/1000/60/60/24;   ShowMessage(DateTimeToStr(StartTime));end;

  26. xwcylm 说:

    系统的开机时间肯定是启动一次唯一一个值的

我要评论

评论功能因故关闭!

请加入我们的QQ群一起参与讨论:群号59400482(500人超级群)


返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明