请问各位大侠,有没有谁知道如果检测计算机里有没有安装SQL Server
vb吧
全部回复
仅看楼主
level 1
请问各位大侠,有没有谁知道如果检测计算机里有没有安装SQL Server?
2006年05月26日 02点05分 1
level 1
用对应的注册表键值方法来判断了试下吧......为了能可靠的判断,可以用这个来判断:------------------------Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion]"checksum"=hex:38,34,32,32,63,31,35,38,61,65,37,64,34,63,64,37,35,30,64,61,30,\ 33,34,62,37,64,63,32,30,39,66,39,66,31,61,39,62,31,64,32,66,31,61,31,33,36,\ 35,33,62,64,31,66,62,61,35,38,31,66,65,34,64,34,62,63,66,39,38,34,66,65,35,\ 37,32,37,38,39,34,39,32,65,63,31,65,64,30,35,30,62,33,66,36,38,38,34,35,39,\ 31,31,37,32,64,36,31,32,61,34,65,61,37,32,39,36,38,64,39,64,61,66,39,32,36,\ 61,30,63,62,64,30,38,39,33,39,39,64,39,31,66,66,66,63,30,61,34,61,37,63,61,\ 64,31,34,37,65,63,61,37,65,66,66,61,32,38,30,34,66,36,39,35,33,66,36,63,00"RegisteredOwner"="Edwing""SerialNumber"=dword:825d0040 <------读取这个值,这个值存在就说明安装了MS SQL Server "CurrentVersion"="8.00.194""Language"=dword:00000804-----------------------------------
2006年05月26日 04点05分 2
level 1
请问楼上,是判断这个键的值一定为“dword:825d0040”?还是判断是否有“SerialNumber”键?所说的键,有没有会因操作系统不同而位置或键名会有所不同呢?如果卸载 SQL Server 后这个键是否就一定不在了或是值会被改变?我判断“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Registration”项是否存在会准确吗?
2006年05月26日 05点05分 3
level 1
1、是判断是否有“SerialNumber”键。2、所说的键,有没有会因操作系统不同而位置或键名会有所不同呢?:不会。3、我判断“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Registration”项是否存在会准确吗? :不一定准确。我之所以前面建议判断[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion] 下的 “SerialNumber”键 是因为这是序列号啊,可以得知的是如果你没有安装sql server 就不会有这个软件的序列号,这个是可以肯定的,如果(正常)卸载了该软件注册表也会一起被清理掉的。
2006年05月26日 05点05分 4
level 1
因为微软的版本有点多,好象MSDE 这种桌面型数据库也会被当作SQL server。如果你想把功能做得更完美些,还可以同时读取 类别、版本 等几个地方的键值。
2006年05月26日 06点05分 5
level 1
为什么我调用:result = RegQueryValueEx(nKeyHandle, "CD_KEY", 0, ByVal REG_SZ, sValue, nLength)异常退出!提示“该内存不能为read”的消息就连VB都关掉了!此错误用捕获异常的方法也捕不到?!
2006年05月26日 06点05分 6
level 1
在“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Registration”下有“CD_KEY”、“ProductID”和“DigitalProductID”这三个键,判断这三个键是否存在应该也有效吧?!我想请教一下:判断一个键是否存在(判断是否有“SerialNumber”键)如果判断?怎么我调用总是报不能正常完成?
2006年05月26日 06点05分 7
level 1
是提示“"0x77f47854" 指令引用的 "0x00000001" 内存。该内存不能为 "written"。”
2006年05月26日 06点05分 8
level 1
这个东西没有深入研究过不好回答,但我这里可以给你个例子参考一下很简单的。Private Sub Command1_Click()'//先引用[Registry Access Functions]Dim sss As Stringkey_ok = Registry.GetKeyValue(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion", "SerialNumber", sss)If key_ok Then MsgBox "读取成功"If sss <> "" Then MsgBox "该键值存在"End Sub
2006年05月26日 07点05分 9
level 1
用这个方法就可以读出来!谢谢!十分感谢!
2006年05月26日 08点05分 10
level 1
在我们这里有XP系统里可以测试通过,但贵州有个人的XP却查测不成功,他也不愿给我看他的注册表,可能是他的注册表被什么改过了,哎!
2006年06月08日 03点06分 11
level 1
如果把这个SerialNumber键改了或是删除了,SQL还能正常运行吗?应用可以吧,如果这个键被改了或是删除了,就查测不出来了
2006年06月08日 03点06分 12
1