|
主题: 判断directx版本
|
 灰色幽灵
职务:普通成员
等级:1
金币:0.0
发贴:114
注册:2001/10/11 10:07:05
|
#12002/7/12 11:07:05
怎么样判断directx版本,如果不是8.0就提示安装,否则继续运行.我不是十分清楚注册表信息,请详细些,
|
 酷狗
职务:版主
等级:2
金币:10.0
发贴:610
注册:2000/9/16 9:26:36
|
#22002/7/12 13:26:11
不用读注册表,有一个更简单的方法,只要查找一下wiindows系统目录下的system32下是否有d3d8.dll可以了(注意win9x,好象是system)。当然这个方法也要其它的Xtra来配下能完成,由于查找的方法可以很多种就不在这,多讨论了!
|
 灰色幽灵
职务:普通成员
等级:1
金币:0.0
发贴:114
注册:2001/10/11 10:07:05
|
#32002/7/12 15:21:05
你是说用budapi来查找文件,我不太会用.我学的还很浅你这么说我一点也没办法作.
|
 酷狗
职务:版主
等级:2
金币:10.0
发贴:610
注册:2000/9/16 9:26:36
|
#42002/7/12 17:16:48
先用Result = baSysFolder( "system32") 来获得d3d8.dll的目录,再执行bool= baFileExists( Result &"d3d8.dll" ) ,用if 判断bool的真假就好了:),试过了
|
 灰色幽灵
职务:普通成员
等级:1
金币:0.0
发贴:114
注册:2001/10/11 10:07:05
|
#52002/7/12 17:28:33
谢谢,不知道可不可以把你的测试发给我看看, guyunteng@modern.org
编辑历史:[这消息被灰色幽灵编辑过(编辑时间2002-07-12 17:31:56)]
|
 酷狗
职务:版主
等级:2
金币:10.0
发贴:610
注册:2000/9/16 9:26:36
|
#62002/7/15 8:53:44
我在家中想至一个问题这种方法,如果谁装了DX9就有问题了,所以改一下,找ddraw.dll,然后put baFileVersion( Result &"ddraw.dll" ),比较一下VER号就可以了,但如果以后DX的安装结构变了就不知道行不行了,以试一下吧! Result = baSysFolder( "system32") if baFileExists( Result &"ddraw.dll" ) then ver = baFileVersion( Result &"ddraw.dll" ) .....下来是一些比较字符串的指令....... if ver < (许要的ver) then go movie "install" end if end if
编辑历史:[这消息被szcooldog编辑过(编辑时间2002-07-15 12:59:10)]
|
 灰色幽灵
职务:普通成员
等级:1
金币:0.0
发贴:114
注册:2001/10/11 10:07:05
|
#72002/7/15 10:03:01
谢谢你,我去试试看,
|
 灰色幽灵
职务:普通成员
等级:1
金币:0.0
发贴:114
注册:2001/10/11 10:07:05
|
#82002/7/15 10:40:31
szcooldog兄,不行呀,第一句就提示出错 handler not defined
#basysfolder
是需要加什么吗?用不用budapi或其他Xtras呀
|
 吃鱼专家
职务:普通成员
等级:6
金币:11.0
发贴:5312
注册:2004/1/17 13:07:16
|
#92002/7/15 11:23:28
那别人用DX9的就完了
|
 酷狗
职务:版主
等级:2
金币:10.0
发贴:610
注册:2000/9/16 9:26:36
|
#102002/7/15 13:00:35
Result = baSysFolder( "system32") if baFileExists( Result &"ddraw.dll" ) then ver = baFileVersion( Result &"ddraw.dll" ) .....下来是一些比较字符串的指令....... if ver < (许要的ver) then go movie "install" end if end if 可以对付DX9呀,怎么会完了呢,你试呀 要buddyAPI3.40 XTRA,那些函数全不是XTRA
编辑历史:[这消息被szcooldog编辑过(编辑时间2002-07-15 13:01:38)]
|
 灰色幽灵
职务:普通成员
等级:1
金币:0.0
发贴:114
注册:2001/10/11 10:07:05
|
#112002/7/15 14:47:33
黑黑,看来我还是要学着用buddyAPI呀,功能真多,谢谢szcooldog了.
|
 threem
职务:普通成员
等级:2
金币:1.0
发贴:338
注册:2001/6/14 13:52:15
|
#122002/7/17 22:10:53
不能精确判断用户的版本,但是检测是否安装directx8 也可以这样做:
on DirectXInstallP pp=new(xtra "activex") if ActiveXControlQuery("{E7FF1300-96A5-11D3-AC85-00C04FC2C602}")<>-1 then alert "PLease install DirectX 81" end if end
|
 灰色幽灵
职务:普通成员
等级:1
金币:0.0
发贴:114
注册:2001/10/11 10:07:05
|
#132002/9/24 9:54:25
szcooldog大哥,你的方法似乎只是判断的ddraw.dll版本, Result = baSysFolder( "system32") if baFileExists( Result &"ddraw.dll" ) then ver = baFileVersion( Result &"ddraw.dll" ) alert ""& ver end if 我在几台机器上试过取出的值似乎都不对呀
|
 疯狂的少年
职务:普通成员
等级:1
金币:0.0
发贴:106
注册:2002/4/27 8:39:38
|
#142002/9/24 12:45:17
通过DirectOS xtra插件便可得到DirectX version on GetDirectXVersion vDirectX = dosReadReg ("HKEY_LOCAL_MACHINE", "Software\Microsoft\DirectX", "Version") if (vDirectX = "") then if (dosGetLastError()) then put "Can't obtain the DirectX version. DirectX may not be installed, error # "&dosGetLastError() else put "DirectX version information is not stored as expected." end if exit end if set the itemDelimiter to "." put "DirectX version is " & item 2 of vDirectX & "." & item 3 of vDirectX end
|
 灰色幽灵
职务:普通成员
等级:1
金币:0.0
发贴:114
注册:2001/10/11 10:07:05
|
#152002/9/24 13:40:27
谢谢疯狂的少年,我不想使用太多的xtra,DirectOS功能不十分强, 而buddyAPI我在其它的位置上还有用到
|