微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RegWrite 不写入注册表

如何解决RegWrite 不写入注册表

ValueType := A_Args[1]
KeyName   := A_Args[2]
ValueName := A_Args[3]
ValueData := A_Args[4]
Loop,%0%
    params .= A_Space %A_Index%

; https://autohotkey.com/docs/Run#RunAs
full_command_line := DllCall("GetCommandLine","str")
if !(A_IsAdmin or RegExMatch(full_command_line," /restart(?!\S)")) {
    try {
        if A_IsCompiled
            Run *RunAs "%A_ScriptFullPath%" "%params%" /restart
        else
            Run *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%" "%params%"
    }
    ExitApp
}

RegWrite,% ValueType,% KeyName,% ValueName,% ValueData

当我向脚本传递参数时,为什么 RegWrite 没有写入注册表?

解决方法

A_LastError codes

代码 87 表示无效参数。你要传递给RegWrite什么?

这是我用于调试的一个函数。如果 isCondition 为 true,则显示自定义错误消息并停止所有操作。

fAbort(isCondition,sFuncName,sNote,dVars:="") {
    If isCondition {
        sAbortMessage := % sFuncName ": " sNote
        . "`n`nA_LineNumber: """ A_LineNumber """`nErrorLevel: """ ErrorLevel """`nA_LastError: """ A_LastError """`n"
        For sName,sValue in dVars
            sAbortMessage .= "`n" sName ": """ sValue """"
        MsgBox,16,% sAbortMessage
        ExitApp
    }
}

RegWrite 之后可以这样使用:

fAbort(ErrorLevel                   ; 1,if RegWrite unsuccessful.,"Script or function name here"    ; Could use A_ThisFunc for current function name.,"Registry write unsuccessful."    ; Your custom message here.,{ x: "blabla",y: 13 }            ; Additional vars you want to see in the msgbox.
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。