在系统启动后, 获取一个唯一值。。。 要启动后。。。多次获取都是一样的。
再次启动后又是一个新的值。
类似系统启动时间那样的值。。
Guid.NewGuid().ToString() +"-" + System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss-fff")+"-"+System.Environment.TickCount.ToString()
你就是用那个上网时间吧,每次重新启动后,时间不一样
认真想还想不到简单的方法:)做一个系统服务,该服务启动的时候取得唯一值,并在电脑重起前提供该唯一值。
那个强度太低了。。。要要个更复杂的。DateTime dt = DateTime.Now.AddMilliseconds(-Environment.TickCount);return dt.Ticks.ToString();我就这样来了5次。。。5次结果都不一样。
Guid.NewGuid().ToString() +"-" + System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss-fff")+"-"+System.Environment.TickCount.ToString()三个都不行。。。加一起就更不行呢。
http://www.weste.net/2007/11-25/14452390055.html
CPU 标识码!硬盘标识码等等
不要硬件ID。。。
Guid.NewGuid().ToString() +"-" + System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss-fff")+"-"+System.Environment.TickCount.ToString()三个都不行。。。加一起就更不行呢。为什么不行?给出测试数据
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看清楚吗。。。我要的是 系统启动后。。。多次获取都是一样的。
Guid.NewGuid()这个就是唯一的了,怎么三个加起来都不行呢
我晕,原来是我想歪了
GUID 不行呢。。。我来5次 5次都不一样。。我就是要在一个电脑上多个程序里面。 用同样的方法。 获取一个值,值都是一样的 (不要硬件ID类的)当系统在次启动后。。。。他们获取的又是一个同样的唯一值。(和上次重启时的不一样)
用服务也不行呀。。。太麻烦。。。而且别人可以把服务关了,,在开次。
不知道你要这个值有什么用,要不要区分多台机器的唯一值。
GUID你開機後取出來,就保存起來,每次開機都更新一下,這可以嗎?如樓上,你拿來有什麼用?
做用户控制哈。。。不想用硬件ID。。一来麻烦。。多系统。。多环境。。就是控制一个用户可以在一个电脑上多次登录,,,,不能在多台电脑上 多次登录。
用APINtQuerySystemInformation 获取系统信息这里http://blog.csdn.net/afxid/archive/2006/06/09/784526.aspx
嗯,明白你的意思了,你的难点不在“唯一值”,而在于,怎么限制一个帐号在多台机器使用我的做法:仍然可以使用1楼的代码,取到一个值后,保存到注册表里,软件启动后就去注册表读取这个值,这样可以保证每次启动后取后的值都是相同的,也可以保存每台机器取到的值不一样但问题是:如果有用户拿到注册表中的值,到其他机器使用,就没有办法了所以,仍然会设置到硬件
所以我要找一个 软的 唯一值哈。。不要保存到文件,注册表。不要硬的。。 貌似就一个启动时间呢。。不知道 系统启动的时候。。有那些值,,,会存在什么地方。。。我把他们一起 MD5次就行了。
縴豬看ㄆ阝日 wyuxiao729学习来了
你第一次启动,写个文件不就完了。真啰嗦。
————————–取该程序的进程ID 应该就是了—————————-
所以我要找一个 软的 唯一值哈。。不要保存到文件,注册表。不要硬的。。 启动时间倒是可以知道,WMI查询Win32_OperatingSystem的LastBootUpTime,结果类似: LastBootUpTime 20100827232335.375199+720如果可以写到注册表,倒是可以写到一处关机就丢失的地方。
var StartTime:TDateTime;begin StartTime:=Now-GetTickCount/1000/60/60/24; ShowMessage(DateTimeToStr(StartTime));end;
系统的开机时间肯定是启动一次唯一一个值的
评论功能因故关闭!
请加入我们的QQ群一起参与讨论:群号59400482(500人超级群)
Copyright © 2007-2010 www.Chengxy.com All rights reserved
Powered by 王牌程序员
Guid.NewGuid().ToString() +"-" + System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss-fff")+"-"+System.Environment.TickCount.ToString()
你就是用那个上网时间吧,每次重新启动后,时间不一样
认真想还想不到简单的方法:)做一个系统服务,该服务启动的时候取得唯一值,并在电脑重起前提供该唯一值。
那个强度太低了。。。要要个更复杂的。DateTime dt = DateTime.Now.AddMilliseconds(-Environment.TickCount);return dt.Ticks.ToString();我就这样来了5次。。。5次结果都不一样。
Guid.NewGuid().ToString() +"-" + System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss-fff")+"-"+System.Environment.TickCount.ToString()三个都不行。。。加一起就更不行呢。
http://www.weste.net/2007/11-25/14452390055.html
CPU 标识码!硬盘标识码等等
不要硬件ID。。。
Guid.NewGuid().ToString() +"-" + System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss-fff")+"-"+System.Environment.TickCount.ToString()三个都不行。。。加一起就更不行呢。为什么不行?给出测试数据
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看清楚吗。。。我要的是 系统启动后。。。多次获取都是一样的。
Guid.NewGuid()这个就是唯一的了,怎么三个加起来都不行呢
我晕,原来是我想歪了
GUID 不行呢。。。我来5次 5次都不一样。。我就是要在一个电脑上多个程序里面。 用同样的方法。 获取一个值,值都是一样的 (不要硬件ID类的)当系统在次启动后。。。。他们获取的又是一个同样的唯一值。(和上次重启时的不一样)
用服务也不行呀。。。太麻烦。。。而且别人可以把服务关了,,在开次。
不知道你要这个值有什么用,要不要区分多台机器的唯一值。
GUID你開機後取出來,就保存起來,每次開機都更新一下,這可以嗎?如樓上,你拿來有什麼用?
做用户控制哈。。。不想用硬件ID。。一来麻烦。。多系统。。多环境。。就是控制一个用户可以在一个电脑上多次登录,,,,不能在多台电脑上 多次登录。
用APINtQuerySystemInformation 获取系统信息这里http://blog.csdn.net/afxid/archive/2006/06/09/784526.aspx
嗯,明白你的意思了,你的难点不在“唯一值”,而在于,怎么限制一个帐号在多台机器使用我的做法:仍然可以使用1楼的代码,取到一个值后,保存到注册表里,软件启动后就去注册表读取这个值,这样可以保证每次启动后取后的值都是相同的,也可以保存每台机器取到的值不一样但问题是:如果有用户拿到注册表中的值,到其他机器使用,就没有办法了所以,仍然会设置到硬件
所以我要找一个 软的 唯一值哈。。不要保存到文件,注册表。不要硬的。。 貌似就一个启动时间呢。。不知道 系统启动的时候。。有那些值,,,会存在什么地方。。。我把他们一起 MD5次就行了。
縴豬看ㄆ阝日 wyuxiao729学习来了
你第一次启动,写个文件不就完了。真啰嗦。
————————–取该程序的进程ID 应该就是了—————————-
所以我要找一个 软的 唯一值哈。。不要保存到文件,注册表。不要硬的。。 启动时间倒是可以知道,WMI查询Win32_OperatingSystem的LastBootUpTime,结果类似: LastBootUpTime 20100827232335.375199+720如果可以写到注册表,倒是可以写到一处关机就丢失的地方。
var StartTime:TDateTime;begin StartTime:=Now-GetTickCount/1000/60/60/24; ShowMessage(DateTimeToStr(StartTime));end;
系统的开机时间肯定是启动一次唯一一个值的