winXP下用VBS寫的代碼編輯器
2024-08-26 00:15:39
供稿:網友
這幾天不能訪問的時候把硬盤上的東東復習了一遍,找出了這個東西出來,由于水平有限,而且對DHTML沒有什么研究,所以做得很是粗糙,貼上來是為了拋磚引玉,希望有高人能幫忙修改或拿出更優秀的東東出來。
測試環境為windows XP 專業版 SP2,暫時發現代碼著色方面有Bug,雖然已有解決方法,不過由于代碼量的原因(用記事本寫代碼真的很惱火),暫時未糾正,另外預計將來加入自動完成等功能。
ps:利用VBS腳本+DHTML,主要功能由正則表達式+wmic來完成,代碼需保存為HTA類型的文件,當然也可以更改為純粹的VBS腳本,不過那樣效率低多了,而且代碼更復雜。
代碼如下:
<HTML>
<HEAD>
<title>代碼編輯器</title>
<HTA:APPLICATION selection="no" SCROLL="no" contextMenu="no" />
<SCRIPT LANGUAGE="VBSCRIPT">
'*******************************************************************'
'腳本開始
'*******************************************************************'
Set shell=CreateObject("WScript.Shell")
Set fso=CreateObject("Scripting.FileSystemObject")
'*******************************************************************'
'遍歷本地所有類型文件
'*******************************************************************'
Sub OptionAdd(fExt)
str = "<select size=""1"" name=""objOption"" onChange=""TestSub"">"
Set objDataFiles = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!//./root/cimv2")
Set colFiles = objDataFiles. _
ExecQuery("Select * from CIM_DataFile where extension = '" & fExt & "'")
For Each objFile in colFiles
str = str & "<option value=""" & objFile.name & """>" & _
objFile.name & "</option>"
next
str = "<label>本地腳本文件:</label>" & str & "</select>"
forOption.innerHTML = str
end Sub
'*******************************************************************'
'顏色轉換
'*******************************************************************'
Sub ChangeColor
if cxs.value = "vbs" then
WinMain.innerHTML = ChangeVBS(WinMain.innerText)
else 'CMD腳本
WinMain.innerHTML = ChangeCMD(WinMain.innerText)
end if
end Sub
'*******************************************************************'
'VBS轉換模塊
'*******************************************************************'
Function ChangeVBS(sText)
Set re=new RegExp
re.IgnoreCase =true
re.Global=true
'注釋轉換
re.Pattern = "(/'.*)/r/n"
sText = re.Replace(sText,"<font color=#339999>$1</font><p>")
'轉換符號為[藍色]
re.Pattern = "(/(|/)|/&|/+|/-|/*|/%|/:|/;|/.|/""" & ")"
sText = re.Replace(sText,"<font color=#993333>$1</font>")
sText = "<table ><tr><td width='1024' " & _