2014-08-31 104 views
-1

我試圖儘可能將代碼從JavaScript更改爲VBScript ...你能幫助我,如果有任何改變,而錯誤..轉換Java腳本來VB腳本

 <script language='vbscript' type='text/vbscript'> 

Dim myVar = ""; 

function auto(data) 
Dim path = '<%=session.getAttribute("PATH")%>' ; 
    Dim DocId = '<%=session.getAttribute("REQDOCUMENTID")%>' ; 
    Dim extension = '<%=session.getAttribute("FILEEXTN")%>' ; 
    Dim userId = '<%=session.getAttribute("REQUSERID")%>' ; 
    Dim apolloenv = '<%=session.getAttribute("REQAPOLLOENV")%>' ; 

    if(extension != '') Then 
      Dim ext = LCase(extension); 
      Dim fso = CreateObject("Scripting.FileSystemObject"); 
      if (fso.FolderExists(path)) Then         
       path = path & DocId & "." & ext; 
       document.ViewONE.save(path); 
       myVar=window.setInterval(Call checkFile(path,ext),1000);  
      End If 
      if(DocId <> 'null' AND apolloenv <> 'null' AND userId <> 'null') Then 
       getNote(DocId,apolloenv,userId,"autolaunch executed"); 
      End If 
    End If 
End Function 

    function checkFile(path,ext) 

    set fso = CreateObject("Scripting.FileSystemObject"); 
    if(fso.FileExists(path)) Then 
      Call openfile(ext, path); 
      window.clearInterval(myVar); 
End If 
End Function 




function openfile(ext, path) 
    if(ext == 'docx' || ext == 'doc'|| ext == 'docm') Then 
      Dim oApplication = CreateObject("Word.Application"); 
      oApplication.Visible = true; 
      oApplication.Documents.Open(path, false, 0); 
    ElseIf (ext == 'xls'||ext == 'xlsx' ||ext == 'xlsm' ||ext == 'xlsb' ||ext == 'xltx' ||ext == 'xltm') Then 
      Dim objExcel = CreateObject("Excel.Application"); 
      objExcel.Visible = true; 
      objExcel.Workbooks.Open(path, false, 0); 
    ElseIf (ext == 'pptx'|| ext == 'ppt' || ext == 'pptm') Then 
      Dim objPPT = CreateObject("PowerPoint.Application"); 
      objPPT.Visible = true; 
      objPPT.Presentations.Open(path, false, 0); 
    ElseIf (ext == 'msg' || ext == 'eml') Then 
      WSH = CreateObject("WScript.Shell"); 
      WSH.run("file://"+path, 1); 
    ElseIf (ext == 'jpg' || ext == 'tif' || ext == 'png' || ext == 'bmp' || ext == 'mdi' || ext == 'gif') Then 
      imageWSH = CreateObject("WScript.Shell"); 
      imageWSH.run("file://"+path, 1); 
    ElseIf (ext == 'txt') Then 
      txtwshShell = CreateObject("WScript.Shell"); 
      txtwshShell.run("file://"+path, 1); 
    ElseIf (ext == 'pdf') Then 
      wshShell = CreateObject("WScript.Shell"); 
      wshShell.run("file://"+path, 1); 
    Else 
     msgbox "Please use the right click AutoLaunch option available in Apollo as this document type will not be supported by daejaviewer's AutoLaunch." 
End If  
End Function 

我不是肯定getNote,文檔,session.attribute功能,有在javascript來改變它的VBScript

+0

你爲什麼要寫「java script」而不是「vbscript」(沒有空格)。此外,您用java.Java標記了這個問題,並沒有使用javascript。只有前4個字母是相同的,如汽車和地毯。 – Ben 2014-08-31 09:27:44

回答

0

在Javascript中你可以聲明,並在一個語句中初始化變量:

var x = "whatever"; 

在VBScript中,你需要一個Dim和一個賦值:

Dim x : x = "whatever" 

在JavaScript語句中,「;」; VBScript不使用語句終止符 -

window.clearInterval(myVar); 

應該會引發語法錯誤。其他示例:

oApplication.Documents.Open(path, false, 0); 
==> 
oApplication.Documents.Open path, false, 0 

JavaScript需要參數列表()到處都是;當調用(Sub/Function/Method as a)Sub時,VBScript不使用參數列表()。

​​

是上述呼叫的VBScript。

通工作的文檔進行VBScript operators使線條狀

if(ext == 'docx' || ext == 'doc'|| ext == 'docm') Then 

體面。

字符串文字分隔符是「在VBScript中,而不是」(或「),如在Javascript中。要檢查Null(而不是字符串文字「null」),您需要使用IsNull()函數。所以

DocId <> 'null' 

是一個雙重失誤。

的VBScript需要Set分配一個目的是變量時:

Dim oApplication = CreateObject("Word.Application"); 
==> 
Dim oApplication : Set oApplication = CreateObject("Word.Application") 

可以有更多的錯誤;我建議您糾正指出的問題,併發布更好的修訂以獲得有關其餘錯誤的幫助。

+0

非常感謝你Ekkehard霍納:) – durga 2014-08-31 10:29:11

+0

我已經改變了代碼根據提到的改變做。但是代碼還沒有工作 – durga 2014-09-01 10:53:50