clsat 发表于 2009-1-15 20:36:49

一个注册表的问题

不知道AU3可以实现,判断一个游戏所在的路径,然后在自动导入注册表的时候修改路径吗?
例如"Install Dir"="E:\\Mirrors Edge\\"注册表的路径是E盘,当我游戏放在D盘或者其他盘的时候,会根据盘不一样,自动更改,要如何做到呢,希望各位可以帮下忙,谢谢了。。

顽固不化 发表于 2009-1-15 20:42:42

要对这个游戏的注册表操作很熟悉才行。

clsat 发表于 2009-1-15 20:57:40

很都游戏都是这样的,我只是想让他自动判断一下路径而已!!就是那个INSTALL的路径

sxd 发表于 2009-1-15 21:22:18

镜之边缘.....

当然可以
1.根据条件获取游戏目录 存变量
2.用au3写注册表 目录那里 用变量 替换
3.写入

ceoguang 发表于 2009-1-15 21:49:41

大概猜测了一下,不知道是不是这样!
$var = RegRead("HKEY_CURRENT_USER\Software\test", "Install Dir")
$path = "\Mirrors Edge"
Select
        Case $var = ""
                test()
        Case $var = "E:\Mirrors Edge"
                        If FileExists($var) Then
                                MsgBox(0,"提示","注册表路径已存在且完全正确")
                        Else
                                test()
                        EndIf
        Case Else
                test()
EndSelect

Func test()
        $Drive = DriveGetDrive( "all" )
        For $i = 1 to $Drive
                If FileExists($Drive[$i] & $path) Then
                        If $Drive[$i] = "e:" Then ContinueLoop
                        RegWrite('HKEY_CURRENT_USER\Software\test')
                        RegWrite('HKEY_CURRENT_USER\Software\test', 'Install Dir', 'REG_SZ', $Drive[$i] & $path)
                EndIf
        Next
EndFunc

KLU3K 发表于 2009-1-15 23:22:48

搞这么麻烦?
直接判断当前路径下是否有Mirrors Edge.exe.然后写如注册表不就可以了?
注册表导入器嘛!PS.楼主速度真快,这游戏我还没下好呢.
$ExeFile = ("Mirrors Edge.exe")
IfFileExists(@ScriptDir & $ExeFile)=1 Then
RegWrite("HKEY_CURRENT_USER\Software\XXXXXX")

[ 本帖最后由 KLU3K 于 2009-1-15 23:23 编辑 ]

ceoguang 发表于 2009-1-16 12:03:00

楼上的可能不明白楼主的意思,估计楼主是用三层的吧,三层的注册表路径是对应三层的,所以.......

liongodmien 发表于 2009-1-16 14:51:07

有些游戏只需要下面样子的注册表就可以,试一下
"Install Dir"=".\\"

clsat 发表于 2009-1-17 18:13:02

"Install Dir"=".\"这样很多游戏不可以,比如FIFA系列。。。。我只想判断路径然后自动导入。。
页: [1]
查看完整版本: 一个注册表的问题