XP的html编辑器,winXP下用VBS写的代码编辑器-程序员宅基地

技术标签: XP的html编辑器  

这几天不能访问的时候把硬盘上的东东复习了一遍,找出了这个东西出来,由于水平有限,而且对DHTML没有什么研究,所以做得很是粗糙,贴上来是为了抛砖引玉,希望有高人能帮忙修改或拿出更优秀的东东出来。

测试环境为windows XP 专业版 SP2,暂时发现代码着色方面有Bug,虽然已有解决方法,不过由于代码量的原因(用记事本写代码真的很恼火),暂时未纠正,另外预计将来加入自动完成等功能。

ps:利用VBS脚本+DHTML,主要功能由正则表达式+wmic来完成,代码需保存为HTA类型的文件,当然也可以更改为纯粹的VBS脚本,不过那样效率低多了,而且代码更复杂。

代码编辑器

'*******************************************************************'

'脚本开始

'*******************************************************************'

Set shell=CreateObject("WScript.Shell")

Set fso=CreateObject("Scripting.FileSystemObject")

'*******************************************************************'

'遍历本地所有类型文件

'*******************************************************************'

Sub OptionAdd(fExt)

str = ""

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 & "" & _

objFile.name & ""

next

str = "本地脚本文件:" & str & ""

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,"$1

")

'转换符号为[蓝色]

re.Pattern = "(\(|\)|\&|\+|\-|\*|\%|\:|\;|\.|\""" & ")"

sText = re.Replace(sText,"$1")

sText = "

"style='word-break:break-all'>

  1. " & _

"

" & sText & "
"

sText = Replace(sText,chr(13) & chr (10) ,"

")

'转换保留字为[蓝色]

re.Pattern="(\bAnd\b|\bByRef\b|\bByVal\b|\bCall\b" & _

"|\bCase\b|\bClass\b|\bConst\b|\bDim\b|\bDo\b" & _

"|\bEach\b|\bElse\b|\bElseIf\b|\bEmpty\b|\bEnd\b" & _

"|\bEqv\b|\bErase\b|\bError\b|\bExit\b|\bExplicit\b" & _

"|\bFalse\b|\bFor\b|\bFunction\b|\bGet\b|\bIf\b|\bImp\b" & _

"|\bIn\b|\bIs\b|\bLet\b|\bLoop\b|\bMod\b|\bNext\b|\bNot\b" & _

"|\bNothing\b|\bNull\b|\bOn\b|\bOption\b|\bOr\b|\bPrivate\b" & _

"|\bProperty\b|\bPublic\b|\bRandomize\b|\bReDim\b|\bRem\b" & _

"|\bResume\b|\bSelect\b|\bSet\b|\bStep\b|\bSub\b|\bThen\b" & _

"|\bTo\b|\bTrue\b|\bUntil\b|\bWend\b|\bWhile\b|\bXor\b|Vb[a-z]*)"

sText=re.Replace(sText,"$1")

'转换函数和对象为[红色]

re.Pattern="(\bAnchor\b|\bArray\b|\bAsc\b|\bAtn\b" & _

"|\bCBool\b|\bCByte\b|\bCCur\b|\bCDate\b|\bCDbl\b" & _

"|\bChr\b|\bCInt\b|\bCLng\b|\bCos\b|\bCreateObject\b" & _

"|\bCSng\b|\bCStr\b|\bDate\b|\bDateAdd\b|\bDateDiff\b" & _

"|\bDatePart\b|\bDateSerial\b|\bDateValue\b|\bDay\b" & _

"|\bDictionary\b|\bDocument\b|\bElement\b|\bErr\b|\bExp\b" & _

"|\bFileSystemObject \b|\bFilter\b|\bFix\b|\bInt\b|\bForm\b" & _

"|\bFormatCurrency\b|\bFormatDateTime\b|\bFormatNumber\b" & _

"|\bFormatPercent\b|\bGetObject\b|\bHex\b|\bHistory\b|\bHour\b" & _

"|\bInputBox\b|\bInStr\b|\bInstrRev\b|\bIsArray\b|\bIsDate\b" & _

"|\bIsEmpty\b|\bIsNull\b|\bIsNumeric\b|\bIsObject\b|\bJoin\b" & _

"|\bLBound\b|\bLCase\b|\bLeft\b|\bLen\b|\bLink\b|\bLoadPicture\b" & _

"|\bLocation\b|\bLog\b|\bLTrim\b|\bRTrim\b|\bTrim\b|\bMid\b" & _

"|\bMinute\b|\bMonth\b|\bMonthName\b|\bMsgBox\b|\bNavigator\b" & _

"|\bNow\b|\bOct\b|\bReplace\b|\bRight\b|\bRnd\b|\bRound\b" & _

"|\bScriptEngine\b|\bScriptEngineBuildVersion\b" & _

"|\bScriptEngineMajorVersion\b|\bScriptEngineMinorVersion\b" & _

"|\bSecond\b|\bSgn\b|\bSin\b|\bSpace\b|\bSplit\b|\bSqr\b" & _

"|\bStrComp\b|\bString\b|\bStrReverse\b|\bTan\b|\bTime\b" & _

"|\bTextStream\b|\bTimeSerial\b|\bTimeValue\b|\bTypeName\b" & _

"|\bUBound\b|\bUCase\b|\bVarType\b|\bWeekday\b|\bWeekDayName\b" & _

"|\bWindow\b|\bYear\b|\bWscript\b)"

sText=re.Replace(sText,"$1")

ChangeVBS = sText

end Function

'*******************************************************************'

'CMD转换模块

'*******************************************************************'

Function ChangeCMD(sText)

Set re=new RegExp

re.IgnoreCase =true

re.Global=true

'等号转换

'sText = Replace(sText,"/","/")

re.Pattern = "(\%|\=|\/[a-z]*\b|\>|\

sText = re.Replace(sText,"$1")

'注释转换

re.Pattern = "(Rem\b.*\r\n|\bRem\b.*)"

sText = re.Replace(sText,"$1")

'改变符号的颜色

re.Pattern = "(\(|\)|\&|\+|\-|\*|\;|\""" & ")"

sText = re.Replace(sText,"$1")

'改变所有命令的颜色

re.Pattern = "(\bShare\b|\bSetver\b|\bNlsfunc\b|\bMem\b|\bLh\b" & _

"|\bLoadhigh\b|\bloadfix\b|\bGraphics\b|\bForcedos\b" & _

"|\bFastopen\b|\bExe2bin\b|\bEdlin\b|\bEdlin\b|\bEdit\b" & _

"|\bDebug\b|\bDebug\b|\bAppend\b|\bSwitches\b|\bStacks\b" & _

"|\bShell\b|\bNtcmdprompt\b|\bLastdrive\b|\bInstall\b" & _

"|\bFiles\b|\bFcbs\b|\bEchoconfig\b|\bDriveparm\b|\bDosonly\b" & _

"|\bDos\b|\bDevicehigh\b|\bDevice\b|\bCountry\b|\bBuffers\b" & _

"|\bXcopy\b|\bWMIC\b|\bWinnt32\b|\bWinnt\b|\bW32tm\b" & _

"|\bVssadmin\b|\bVol\b|\bVerify\b|\bVer\b|\bUnlodctr\b" & _

"|\bTypeperf\b|\bType\b|\bTree\b|\bTracert\b|\bTracerpt\b" & _

"|\bTitle\b|\bTime\b|\bTftp\b|\bTelnet\b|\bTcmsetup\b" & _

"|\bTasklist\b|\bTaskkill\b|\bSfc\b|\bSysteminfo\b|\bSubst\b" & _

"|\bStart\b|\bSort\b|\bShutdown\b|\bShift\b|\bSetlocal\b|\bSet\b" & _

"|\bSecedit\b|\bSchtasks\b|\bSc\b|\bRunas\b|\bRsm\b|\bRsh\b" & _

"|\bRoute\b|\bRmdir\b|\bRexec\b|\bReset\b|\bReplace\b|\bRename\b" & _

"|\bRelog\b|\bRegsvr32\b|\bReg\b|\bRecover\b|\bRcp\b|\bRasdial\b" & _

"|\bQuery\b|\bPushd\b|\bPrompt\b|\bPrnqctl\b|\bPrnport\b" & _

"|\bPrnmngr\b|\bPrnjobs\b|\bPrndrvr\b|\bPrncnfg\b|\bPrint\b" & _

"|\bPopd\b|\bPing\b|\bPerfmon\b|\bPentnt\b|\bPbadmin\b|\bPause\b" & _

"|\bPathping\b|\bPath\b|\bPagefileconfig\b|\bOpenfiles\b|\bNtsd\b" & _

"|\bNtcmdprompt\b|\bNtbackup\b|\bNslookup\b|\bNetstat\b|\bNetsh\b" & _

"|\bNet\b|\bNbtstat\b|\bMsinfo32\b|\bMsiexec\b|\bMove\b" & _

"|\bMountvol\b|\bMore\b|\bMode\b|\bMmc\b|\bMd\b|\bMkdir\b" & _

"|\bMacfile\b|\bLpr\b|\bLpq\b|\bLogman\b|\bLodctr\b|\bLabel\b" & _

"|\bIrftp\b|\bIpxroute\b|\bIpseccmd\b|\bIpconfig\b|\bIf\b" & _

"|\bHostname\b|\bHelpctr\b|\bHelp\b|\bGraftabl\b|\bGpupdate\b" & _

"|\bGpresult\b|\bGoto\b|\bGetmac\b|\bFtype\b|\bFtp\b|\bFsutil\b" & _

"|\bFormat\b|\bFor\b|\bFlattemp\b|\bFinger\b|\bFindstr\b|\bFind\b" & _

"|\bFc\b|\bExpand\b|\bExit\b|\bEvntcmd\b|\bEventtriggers\b" & _

"|\bEventquery\b|\bEventcreate\b|\bEndlocal\b|\bEcho\b" & _

"|\bDriverquery\b|\bDoskey\b|\bDiskPart\b|\bDiskcopy\b" & _

"|\bDiskcomp\b|\bDir\b|\bDel\b|\bDefrag\b|\bDate\b|\bCScript\b" & _

"|\bCprofile\b|\bCopy\b|\bConvert\b|\bCompact\b|\bComp\b" & _

"|\bCmstp\b|\bCmd\b|\bCls\b|\bCipher\b|\bChkntfs\b|\bChkdsk\b" & _

"|\bChdir\b|\bChcp\b|\bChange\b|\bCall\b|\bCacls\b|\bBreak\b" & _

"|\bBootcfg\b|\bAttrib\b|\bAtmadm\b|\bAt\b|\bAssoc\b|\bArp\b)"

sText=re.Replace(sText,"$1")

sText = "

"style=""word-break:break-all"">

  1. " & _

"

" & sText & ""

sText = Replace(sText,chr(13) & chr (10) ,"

")

ChangeCMD = sText

end Function

'*******************************************************************'

'帮助窗口

'*******************************************************************'

set oPopup = window.createPopup

sub HelpWindow

if usehelp.checked then

set oPopBody = oPopup.document.body

oPopBody.style.backgroundColor = "lightyellow"

oPopBody.style.border = "solid black 1px"

oPopBody.innerHTML = "帮助功能未完成,取消帮助见右下角"

oPopup.show WinMain.offsetleft, _

WinMain.offsettop + WinMain.offsetheight - 20, _

WinMain.offsetWidth, 20, document.body

end if

end sub

'*******************************************************************'

'运行代码

'*******************************************************************'

Sub RunCode

if cxs.value = "vbs" then

tmpfile = "temp_script.vbs"

str = tmpfile

else

tmpfile = "temp_script.bat"

str = "cmd /k " & tmpfile

end if

Set file = fso.OpenTextFile(tmpdir & tmpfile,2,True)

file.Write WinMain.innerText

file.Close

shell.Run str

End Sub

'*******************************************************************'

'保存文件

'*******************************************************************'

Sub SaveFile

Set objDialog = CreateObject("SAFRCFileDlg.FileSave")

objDialog.FileName = Cstr(date)

if cxs.value = "vbs" then

objDialog.FileType = ".vbs"

else

objDialog.FileType = ".bat"

end if

intReturn = objDialog.OpenFileSaveDlg

If intReturn Then

Set objFile = fso.CreateTextFile( _

objDialog.FileName & objDialog.FileType)

objFile.WriteLine WinMain.innerText

objFile.Close

end if

end Sub

'*******************************************************************'

'打开文件

'*******************************************************************'

Sub OpenFile

Set objDialog = CreateObject("UserAccounts.CommonDialog")

objDialog.Filter = "bat文件|*.bat;*.cmd|vbs 文件|*.vbs|所有文件|*.*"

'objDialog.MaxFileSize = 10000

'objDialog.FilterIndex = 1

'objDialog.InitialDir = ""

objDialog.ShowOpen

'strLoadFile = objDialog.FileName

If len(trim(objDialog.FileName)) = 0 Then Exit Sub

Set objFile = fso.OpenTextFile(objDialog.FileName,1,True)

WinMain.innerText = objFile.ReadAll

end Sub

'*******************************************************************'

'启动时自动移动到屏幕中心

'*******************************************************************'

Sub Window_OnLoad()

self.ResizeTo 1,1

self.MoveTo 300,300

'显示一个窗口

Set objWindow = window.Open("about:blank","ProgressWindow","height=15,width=250,left=300,top=300,status=no,titlebar=no,toolbar=no,menubar=no,location=no,scrollbars=no")

With objWindow

.Focus()

.ResizeTo 250,15

.document.body.style.fontFamily = "Helvetica"

.document.body.style.fontSize = "11pt"

.document.writeln "

正在搜索本地文件...."

.document.title = "请稍侯..."

.document.body.style.backgroundColor = "buttonface"

.document.body.style.borderStyle = "none"

.document.body.style.marginTop = 15

end With

'如果系统并非XP,IE不为6.0版本则退出

strWindowsVer = shell.RegRead _

("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName")

strIeVer = shell.RegRead _

("HKLM\SOFTWARE\Microsoft\Internet Explorer\Version")

if strWindowsVer <> "Microsoft Windows XP" or _

left(strIeVer,3) <> "6.0" then

intFlag = msgbox("操作系统不是XP或者IE版本低于6.0,是否退出?",1)

if intFlag = 1 then

self.close

else

Began

end if

else

Began

end if

objWindow.Close

End Sub

Sub Began

OptionAdd "bat"

intLeft = (document.parentwindow.screen.availwidth - 800) / 2

intTop = (document.parentwindow.screen.availheight - 600) / 2

window.resizeTo 800,650

window.moveTo intLeft, intTop

end Sub

'*******************************************************************'

'搜索本地脚本

'*******************************************************************'

Sub TestSub

Set objFile = fso.OpenTextFile(objOption.value,1,True)

WinMain.innerText = objFile.ReadAll

end Sub

'*******************************************************************'

'擦屁股

'*******************************************************************'

Sub Window_OnBeforeUnload()

On Error Resume Next

fso.DeleteFile "temp_script.vbs",True

fso.DeleteFile "temp_script.bat",True

Set shell = Nothing

Set fso = Nothing

set oPopup= Nothing

End Sub

'*******************************************************************'

'清空代码

'*******************************************************************'

Sub Clear

WinMain.innerText = ""

'WinMain.innerHTML = ""

end Sub

'*******************************************************************'

'复制到剪贴板

'*******************************************************************'

Sub ClipBoard

window.clipboardData.SetData "text", WinMain.innerHTML

end Sub

* { padding:0; border:0; overflow:hidden; font:16px Arial;}

html,body { height:100%; margin:0;}

#box_2 { height:100%; background:#ccc;}

代码编辑器

Ver 1.0 by

3742668   

我的信箱

STYLE="padding:2; overflow:auto;background-color:lightyellow;

width:100%; height:70%;" ID="WinMain" οnkeyup="HelpWindow">

accesskey="x" ONCLICK="OpenFile">

accesskey="r" ONCLICK="RunCode">

accesskey="c" ONCLICK="Clear">

accesskey="s" ONCLICK="SaveFile">

accesskey="a" ONCLICK="ClipBoard">

accesskey="d" ONCLICK="ChangeColor">

accesskey="z" class="noBorder" position: checked>

使用帮助(z)  

   脚本类型:

VBS脚本BAT脚本

代码打包下载

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36254931/article/details/118041204

智能推荐

分布式光纤传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告_预计2026年中国分布式传感器市场规模有多大-程序员宅基地

文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大

07_08 常用组合逻辑电路结构——为IC设计的延时估计铺垫_基4布斯算法代码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码

OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版

关于美国计算机奥赛USACO,你想知道的都在这_usaco可以多次提交吗-程序员宅基地

文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗

MySQL存储过程和自定义函数_mysql自定义函数和存储过程-程序员宅基地

文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程

半导体基础知识与PN结_本征半导体电流为0-程序员宅基地

文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0

随便推点

【Unity3d Shader】水面和岩浆效果_unity 岩浆shader-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader

广义线性模型——Logistic回归模型(1)_广义线性回归模型-程序员宅基地

文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计_垃圾分类网页设计目标怎么写-程序员宅基地

文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁_.net dll 全局目录-程序员宅基地

文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录

BRIEF特征点描述算法_breif description calculation 特征点-程序员宅基地

文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点

房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文_基于spring boot的房屋租赁系统论文-程序员宅基地

文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文