小胖熊酷数码GPS论坛 www.sosaw.com

 找回密码
 注册register

扫一扫,访问微社区

查看: 1789|回复: 7

[GPS工具] Yrel大侠《注册表自动删除写入工具》使用求助

[复制链接]
发表于 2015-9-18 16:59 | 显示全部楼层 |阅读模式
分享到:
综合发帖模板
发帖目的: 求助
地图品牌: GPS工具
测试机型: -
适用系统(可多选): CE6 
地图国别: 中国 » 中国
支持分辨率(可多选): 800x480 
资源分类(可多选):  
本帖最后由 jacsonchen 于 2015-9-20 11:57 编辑

我有一台车机CE6导航仪,无法保存后写入注册表信息,于是我下载了Yrel大侠(
http://www.sosaw.com/forum.php?mod=viewthread&tid=366053&extra=page%3D1%26filter%3Dtypeid%26typeid%3D57
)的注册表自动删除写入工具,解压后得到以下文件:


放到车机上,进入CE界面,运行   能否保存检测,出来一条提示:关机,再开机启动本工具才能完成检测
于是,我就关机,进入CE, 重新再运行一遍,还是同一条提示:关机,再开机启动本工具才能完成检测.

我打开  能否保存检测.msrc  文件,应该是要有结果才对,文件内容如下:
fnkey="www\sosaw\com"
valuenm="sosaw"
valuesz="www.sosaw.com"
pdFile=IniRead(SystemPath("ScriptPath")& "\pdgdFile.ini","","检测中")
If(pdFile)
   bool=RegValueExists(fnroot,fnkey,valuenm)
   If(bool)
      bigMessage("机器可以保存后写的注册表信息")
      RegDelete(fnroot,fnkey,valuenm)
      IniWrite(SystemPath("ScriptPath")& "\待写入文件\pdgdFile.ini","","能否保存","机器可以保存后写的注册表信息")
     Else
      bigMessage("机器不能保存后写的注册表信息")
      IniWrite(SystemPath("ScriptPath")& "\待写入文件\pdgdFile.ini","","能否保存","机器不能保存后写的注册表信息")
    Endif
    IniWrite(SystemPath("ScriptPath")& "\待写入文件\pdgdFile.ini","","检测中",0)   
  Else
    RegWriteString(fnroot,fnkey,valuenm,valuesz)
    IniWrite(SystemPath("ScriptPath")& "\待写入文件\pdgdFile.ini","","检测中",1)
    bigMessage("关机,再开机启动本工具才能完成检测。")
Endif
exit

然后我又运行  自动写入  文件,出来以下错误:


#Errorlevel("off")
arra=DirContents(SystemPath("ScriptPath")& "\待写入注册表信息\*.reg",1)
FilesSum=ElementCount(arra)
Filesct=""
If(FilesSum>0)
   For Number=1 to FilesSum-1
Filect=ReadFile(SystemPath("ScriptPath")& "\待写入注册表信息\"& arra[Number])
     If(Number>1)
       Filect=SubStr(Filect,9)
     Endif
     Filesct=Filesct&Filect
   Next
   zxhn=1
   StatusType(ST_MESSAGE)
   StatusInfo("自动注册工具")
   StatusMessage("^NL^^NL^^NL^^NL^^NL^^NL^           正在写入注册表,请稍候...")
   While(zxhn=1)
     If(Find( Filesct,"HKEY_" )>0)
       Call("xieru")
       zxhn=1
      Else
       zxhn=0
     Endif
   EndWhile
   StatusType(ST_HIDDEN)
   SleepMessage(1,"^NL^^NL^^NL^^NL^^NL^^NL^           成功写入注册表文件")
Else
   SleepMessage(2,"^NL^^NL^^NL^^NL^^NL^^NL^           【待写入注册表信息】内不存在要写入的注册表文件")
Endif
runpath=SystemPath("ScriptPath")& "\待写入注册表信息\待运行路径.txt"
If(FileExists(runpath))
  Call("runFile")         
Endif
exit
Sub runFile-----运行到这行报错,提示Sub must not be in control structure! 要怎么调整??
n=1
Filect=ReadFile(SystemPath("ScriptPath")& "\待写入注册表信息\待运行路径.txt")
While(n=1)
  If(FileExists(Filect))
    run(Filect)
    n=0
   Else
    Filect=SelectFile("请选择要启动的程序",0,"*.EXE","选择要启动的程序")
    WriteFile(SystemPath("ScriptPath")& "\待写入注册表信息\待运行路径.txt",Filect)         
  Endif
EndWhile
EndSub
Sub xieru
  zfctwz=Find( Filesct,"HKEY_" )
  zfcwwz=Find( Filesct,"]" )
  cczfcsm=zfcwwz-zfctwz
  syzfcct=SubStr(Filesct,zfctwz,cczfcsm)
  fnroot=Part(syzfcct,"\",1)
  dygxgwz=Length(fnroot)+1
    If(fnroot eq "HKEY_LOCAL_MACHINE")
      fnroot="HKLM"
    ElseIf(fnroot eq "HKEY_CLASSES_ROOT")
      fnroot="HKCR"
    ElseIf(fnroot eq "HKEY_CURRENT_USER")
      fnroot="HKCU"
     Else
      fnroot="HKUS"
    Endif
   fnkey=SubStr(syzfcct,dygxgwz)
   Filesct=SubStr(Filesct,zfcwwz)
   zfctwz=Find( Filesct,"^NL^")
   Filesct=SubStr(Filesct,zfctwz+2)
   zfctwz2=Find( Filesct,"[HKEY_" )
   If(zfctwz2>0)
     lghkjlr=SubStr(Filesct,1,zfctwz2)
     Filesct=SubStr(Filesct,zfctwz2)
    Else
     lghkjlr=SubStr(Filesct,1)
   Endif
   n=1
   While(n=1)  
    xzhkjdy=Find( lghkjlr,"=" )
    If(xzhkjdy>0)
       syhzfc=Part(lghkjlr,"^NL^",1)
       valuenmdsz=ReverseFind(syhzfc,"=")
       valuenm=SubStr(syhzfc,1,valuenmdsz-1)
       valuenmc=Length(valuenm)
       valuenmsw=Find(lghkjlr,valuenm)
       lghkjlr=SubStr(lghkjlr,valueszyksw+valuenmc+1)
       If(Find(valuenm,"""")>0)
           valuenmc=Length(valuenm)
           valuenm=SubStr(valuenm,2,valuenmc-2)
         Else
           If(valuenm eq "@")
             valuenm="Default"
           Endif
       Endif
       valuesz=Part(lghkjlr,"=",2)
       pdszsfyth=Find( valuesz,"^NL^" )
       If(pdszsfyth>0)
          dljfzccd=ReverseFind(valuesz,"^NL^")
          valuesz=SubStr(valuesz,1,dljfzccd-1)
       Endif
       valueszwz=Find(lghkjlr,valuesz)
       lghkjlr=SubStr(lghkjlr,valueszwz+Length(valuesz)+2)      
       syxrmlpd=Find(valuesz,"""")
       zcpdsfth=Find( valuesz,"^NL^" )
       If(syxrmlpd=0)
          If(zcpdsfth>0)
            valuesz=Replace(valuesz,"^NL^","")
            valuesz=Replace(valuesz,"\","")
            pdsfykg=Find( valuesz," " )
            If(pdsfykg>0)
              valuesz=Replace(valuesz," ","")
            Endif
          Endif
          RegWriteExt(fnroot,fnkey,valuenm,valuesz)
        Else
          valueszwfh=ReverseFind(valuesz,"""")
          valuesz=SubStr(valuesz,2,valueszwfh-2)
          syxrmlpd=Find(valuesz,"""")
          If(syxrmlpd>0)
            valuesz=Replace(valuesz,"\","")
           Else
            pdsfydh=Find(valuesz,"\\")
            If(pdsfydh>0)
              valuesz=Replace(valuesz,"\\","\")
            Endif
          Endif
          RegWriteString(fnroot,fnkey,valuenm,valuesz)
       Endif
     Else
      n=0
    Endif
   EndWhile
EndSub


我想求助下坛里的大侠们:
1. 我运行<能否保存检测>文件,为什么没有结果?----已经解决,2楼
2. 我运行<自动写入>文件,出错要怎么解决?

谢谢!

附上附件以及我要写入的驱动文件。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册register

x
发表于 2015-9-19 09:54 | 显示全部楼层
不懂程序,帮顶
回复 支持 2 反对 0

使用道具 举报

发表于 2015-9-19 09:54 | 显示全部楼层
不懂程序,帮顶
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2015-9-19 08:08 | 显示全部楼层
本帖最后由 jacsonchen 于 2015-9-19 08:11 编辑

能否保存检测的问题已经解决。现在自动注册有以下问题:


Sub must not be in control structure! 这个错误要怎么调整啊?

#Errorlevel("off")
arra=DirContents(SystemPath("ScriptPath")& "\待写入注册表信息\*.reg",1)
FilesSum=ElementCount(arra)
Filesct=""
If(FilesSum>0)
   For Number=1 to FilesSum-1
     Filect=ReadFile(SystemPath("ScriptPath")& "\待写入注册表信息\"& arra[Number])--------运行显示这行错误
     If(Number>1)
       Filect=SubStr(Filect,9)
     Endif
     Filesct=Filesct&Filect
   Next
   zxhn=1
   StatusType(ST_MESSAGE)
   StatusInfo("自动注册工具")
   StatusMessage("^NL^^NL^^NL^^NL^^NL^^NL^           正在写入注册表,请稍候...")
   While(zxhn=1)
     If(Find( Filesct,"HKEY_" )>0)
       Call("xieru")
       zxhn=1
      Else
       zxhn=0
     Endif
   EndWhile
   StatusType(ST_HIDDEN)
   SleepMessage(1,"^NL^^NL^^NL^^NL^^NL^^NL^           成功写入注册表文件")
Else
   SleepMessage(2,"^NL^^NL^^NL^^NL^^NL^^NL^           【待写入注册表信息】内不存在要写入的注册表文件")
Endif
runpath=SystemPath("ScriptPath")& "\待写入注册表信息\待运行路径.txt"
If(FileExists(runpath))
  Call("runFile")         
Endif
exit
Sub runFile-----------------------运行该行报错
n=1
Filect=ReadFile(SystemPath("ScriptPath")& "\待写入注册表信息\待运行路径.txt")
While(n=1)
  If(FileExists(Filect))
    run(Filect)
    n=0
   Else
    Filect=SelectFile("请选择要启动的程序",0,"*.EXE","选择要启动的程序")
    WriteFile(SystemPath("ScriptPath")& "\待写入注册表信息\待运行路径.txt",Filect)         
  Endif
EndWhile
EndSub
Sub xieru
  zfctwz=Find( Filesct,"HKEY_" )
  zfcwwz=Find( Filesct,"]" )
  cczfcsm=zfcwwz-zfctwz
  syzfcct=SubStr(Filesct,zfctwz,cczfcsm)
  fnroot=Part(syzfcct,"\",1)
  dygxgwz=Length(fnroot)+1
    If(fnroot eq "HKEY_LOCAL_MACHINE")
      fnroot="HKLM"
    ElseIf(fnroot eq "HKEY_CLASSES_ROOT")
      fnroot="HKCR"
    ElseIf(fnroot eq "HKEY_CURRENT_USER")
      fnroot="HKCU"
     Else
      fnroot="HKUS"
    Endif
   fnkey=SubStr(syzfcct,dygxgwz)
   Filesct=SubStr(Filesct,zfcwwz)
   zfctwz=Find( Filesct,"^NL^")
   Filesct=SubStr(Filesct,zfctwz+2)
   zfctwz2=Find( Filesct,"[HKEY_" )
   If(zfctwz2>0)
     lghkjlr=SubStr(Filesct,1,zfctwz2)
     Filesct=SubStr(Filesct,zfctwz2)
    Else
     lghkjlr=SubStr(Filesct,1)
   Endif
   n=1
   While(n=1)  
    xzhkjdy=Find( lghkjlr,"=" )
    If(xzhkjdy>0)
       syhzfc=Part(lghkjlr,"^NL^",1)
       valuenmdsz=ReverseFind(syhzfc,"=")
       valuenm=SubStr(syhzfc,1,valuenmdsz-1)
       valuenmc=Length(valuenm)
       valuenmsw=Find(lghkjlr,valuenm)
       lghkjlr=SubStr(lghkjlr,valueszyksw+valuenmc+1)
       If(Find(valuenm,"""")>0)
           valuenmc=Length(valuenm)
           valuenm=SubStr(valuenm,2,valuenmc-2)
         Else
           If(valuenm eq "@")
             valuenm="Default"
           Endif
       Endif
       valuesz=Part(lghkjlr,"=",2)
       pdszsfyth=Find( valuesz,"^NL^" )
       If(pdszsfyth>0)
          dljfzccd=ReverseFind(valuesz,"^NL^")
          valuesz=SubStr(valuesz,1,dljfzccd-1)
       Endif
       valueszwz=Find(lghkjlr,valuesz)
       lghkjlr=SubStr(lghkjlr,valueszwz+Length(valuesz)+2)      
       syxrmlpd=Find(valuesz,"""")
       zcpdsfth=Find( valuesz,"^NL^" )
       If(syxrmlpd=0)
          If(zcpdsfth>0)
            valuesz=Replace(valuesz,"^NL^","")
            valuesz=Replace(valuesz,"\","")
            pdsfykg=Find( valuesz," " )
            If(pdsfykg>0)
              valuesz=Replace(valuesz," ","")
            Endif
          Endif
          RegWriteExt(fnroot,fnkey,valuenm,valuesz)
        Else
          valueszwfh=ReverseFind(valuesz,"""")
          valuesz=SubStr(valuesz,2,valueszwfh-2)
          syxrmlpd=Find(valuesz,"""")
          If(syxrmlpd>0)
            valuesz=Replace(valuesz,"\","")
           Else
            pdsfydh=Find(valuesz,"\\")
            If(pdsfydh>0)
              valuesz=Replace(valuesz,"\\","\")
            Endif
          Endif
          RegWriteString(fnroot,fnkey,valuenm,valuesz)
       Endif
     Else
      n=0
    Endif
   EndWhile

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册register

x
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2015-9-18 17:16 | 显示全部楼层
发现一个问题,能否检测msrc文件,第五行应该是缺少一层文件目录,所以没有结果。

fnroot="HKUS"
fnkey="www\sosaw\com"
valuenm="sosaw"
valuesz="www.sosaw.com"

pdFile=IniRead(SystemPath("ScriptPath")& "\待写入文件\pdgdFile.ini","","检测中")###这里原来缺少一层文件夹目录###
If(pdFile)
   bool=RegValueExists(fnroot,fnkey,valuenm)
   If(bool)
      bigMessage("机器可以保存后写的注册表信息")
      RegDelete(fnroot,fnkey,valuenm)
      IniWrite(SystemPath("ScriptPath")& "\待写入文件\pdgdFile.ini","","能否保存","机器可以保存后写的注册表信息")
     Else
      bigMessage("机器不能保存后写的注册表信息")
      IniWrite(SystemPath("ScriptPath")& "\待写入文件\pdgdFile.ini","","能否保存","机器不能保存后写的注册表信息")
    Endif
    IniWrite(SystemPath("ScriptPath")& "\待写入文件\pdgdFile.ini","","检测中",0)   
  Else
    RegWriteString(fnroot,fnkey,valuenm,valuesz)
    IniWrite(SystemPath("ScriptPath")& "\待写入文件\pdgdFile.ini","","检测中",1)
    bigMessage("关机,再开机启动本工具才能完成检测。")
Endif
exit
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2015-9-19 13:54 | 显示全部楼层
懂脚本的大侠呢?出来帮帮忙呗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-9-20 11:58 | 显示全部楼层
本帖最后由 jacsonchen 于 2015-9-20 12:00 编辑

自己来顶顶,Yrel大侠呢?
@Yrel
回复 支持 反对

使用道具 举报

发表于 2016-6-2 18:17 | 显示全部楼层
首先感谢你放出工具,我也来试试,帮不上你的忙
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册register

本版积分规则

百度SITEMAP|小黑屋|Archiver|手机版|小胖熊酷数码GPS论坛 www.sosaw.com ( 沪ICP备16050520号-1 )|网站地图 

GMT+8, 2020-2-20 13:54 , Processed in 0.239507 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表