簡體   English   中英

vbs語法錯誤:預期為800A03EE')'

[英]vbs syntax error: 800A03EE ')' expected

我嘗試在名為“ addcurrentkey.vbs”的文件中執行此操作,但在第1行中應顯示“)”。字符38。

我嘗試了本教程: http : //www.codeproject.com/Articles/16569/Autorun-Applications

為什么我不能執行.vbs文件?

Private Sub AddCurrentKey(ByVal name As String, ByVal path As String)
Dim key As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True) 
key.SetValue(name, path) 
End Sub 

您發布的代碼可能是用VB.net(或VBA)編寫的。 您想將代碼作為VBScript運行,它不支持鍵入的參數和變量。 它還不提供您要使用的注冊表對象。 從此更改過程:

Private Sub AddCurrentKey(ByVal name As String, ByVal path As String)
  Dim key As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True) 
  key.SetValue(name, path) 
End Sub

對此:

Private Sub AddCurrentKey(ByVal name, ByVal path)
  Dim key : key = "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
  CreateObject("WScript.Shell").RegWrite key & "\" & name, path
End Sub

問題就會消失。

VBScript仍然使用“舊的” Visual Basic語法。 這區分了表達式中使用的函數調用和作為語句的過程調用。 您在表達式中使用(括號),而不在語句中使用。 固定:

 key.SetValue name, path 

或者,如果您願意:

 Call key.SetValue(name, path)

該錯誤消息很難解釋,因為腳本解釋器認為您正在嘗試編寫以下代碼:

 key.SetValue (name), path

這意味着完全不同的東西。 VBScript傳遞參數ByRef。 名稱周圍多余的括號將其轉換為創建變量副本的表達式。 可以通過SetValue過程對其進行修改,而不會影響name變量。 不是它的實際作用,也不是您的意圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM