A notepad made in HTA(hta实现的记事本)

This notepad can handle bigger files than the one shiped with Win9x.
Learn how to make windows looking interfaces in HTML.
Interesting use of Commondialogs.

效果图:



代码如下:

<html><head>

<HTA:APPLICATION
 APPLICATIONNAME="HTANotePad" ID="oHTA" BORDER="thick"
 BORDERSTYLE="normal" CAPTION="yes" CONTEXTMENU="yes"
 INNERBORDER="no" MAXIMIZEBUTTON="yes" MINIMIZEBUTTON="yes"
 NAVIGABLE="yes"
 ICON="NOTEPAD.EXE" SCROLL="no" SCROLLFLAT="no"
 SELECTION="no" SHOWINTASKBAR="yes" SINGLEINSTANCE="no"
 SYSMENU="yes" VERSION="0.3" WINDOWSTATE="normal">

<STYLE TYPE="text/css">
<!--
BODY { xfont-family: "Verdana, Arial, Helvetica, sans-serif";
  font:menu;
  background-color:Menu;
  color:MenuText;
  xfont-size: 8pt;
  cursor:default; //auto, text, pointer
 }
TABLE { xfont-family:"Arial";
  xfont-size:8pt;
  font:menu;
  padding:0pt;
  border:0pt;
  FILTER: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=90);
 }
IFrame { height:expression(document.body.clientHeight-MenuTable.clientHeight);
  width:100%;
 }
TD { border:"1px solid Menu";}
.submenu {position:absolute;top=20;
  background-color:Menu;
  border="2px outset";}
.MenuIn  {border:'1px inset';}
.Menuover {border:'1px outset';}
.Menuout {border:'1px solid';}
.Submenuover {background-color:highlight;color:highlighttext;}
.Submenuout {background-color:Menu;color:MenuText;}
-->
</STYLE>

<script language=vbscript>
option explicit
Dim FileName,fModif,LastChildMenu,LastMenu
fModif=False 'Not modified
DisplayTitle
Set LastChildMenu=Nothing
Set LastMenu=Nothing
Sub DisplayTitle
 If FileName="" Then
  document.Title="sans titre - " & oHTA.ApplicationName
 Else
  document.Title=FileName & " - " & oHTA.ApplicationName
 End If
End Sub

'''''''''''''''''''
' File management '
'''''''''''''''''''
Sub SaveAs
 Dim oDLG
 Set oDLG=CreateObject("MSComDlg.CommonDialog")
 With oDLG
  .DialogTitle="SaveAs"
  .Filter="Scripts|*.vbs;*.hta;*.wsf;*.js|Text Files|*.txt|All files|*.*"
  .MaxFileSize=255
  .ShowSave
  If .FileName<>"" Then
   FileName=.FileName
   Save
  End If
 End With
 Set oDLG=Nothing
 DisplayTitle
End Sub
Sub Save()
 Dim fso,f
 If FileName<>"" Then
  Set fso=CreateObject("Scripting.FileSystemObject")
  Set f=fso.CreateTextFile(FileName,True)
  f.Write MyFrame.MyText.Value
  f.Close
  Set f=Nothing
  Set fso=Nothing
 Else
  SaveAs
 End If
End Sub
Sub OpenIt
 Dim fso,f
 Set fso=CreateObject("Scripting.FileSystemObject")
 Set f=fso.OpenTextFile(FileName,1)
 MyFrame.MyText.Value=f.ReadAll
 f.close
 Set f=Nothing
 Set fso=Nothing
 DisplayTitle
End Sub
Sub Open()
 If fModif Then
  Select Case Msgbox("The text in the file " & FileName & " has been changed." _
   & vbCrLf & "Do you want to save the changes ?",51,oHTA.ApplicationName)
  Case 6 'Yes
   Save
  Case 7 'No
  Case 2 'Cancel
   Exit Sub
  End Select
 End If
 Dim oDLG
 Set oDLG=CreateObject("MSComDlg.CommonDialog")
 With oDLG
  .DialogTitle="Open"
  .Filter="Scripts|*.vbs;*.hta;*.wsf;*.js|Text Files|*.txt|All files|*.*"
  .MaxFileSize=255
  .Flags=.Flags Or &H1000 'FileMustExist (OFN_FILEMUSTEXIST)
  .ShowOpen
  If .FileName<>"" Then
   FileName=.FileName
   OpenIt
  End If
 End With
 Set oDLG=Nothing
End Sub
Sub NewText
 If fModif Then
  Select Case Msgbox("The text in the file " & FileName & " has been changed." _
   & vbCrLf & "Do you want to save the changes ?",51,oHTA.ApplicationName)
  Case 6 'Yes
   Save
  Case 7 'No
  Case 2 'Cancel
   Exit Sub
  End Select
 End If
 MyFrame.MyText.Value=""
 FileName=""
 DisplayTitle
End Sub

'''''''''''''''
' Drag & Drop '
'''''''''''''''
Sub ChangeIFrame
 'We use an Iframe to allow Drag&Drop
 MyFrame.Document.Body.InnerHTML="<textarea ID=MyText WRAP=OFF onChange" & _
  "='vbscript:parent.fModif=True' onclick='vbscript:parent.HideMenu' " & _
  "style='width:100%;height:100%'></textarea>"
 With MyFrame.Document.Body.Style
  .marginleft=0
  .margintop=0
  .marginright=0
  .marginbottom=0
 End With
 With MyFrame.MyText.Style
  .fontfamily="Fixedsys, Verdana, Arial, sans-serif"
  '.fontsize="7pt"
 End With
 Select Case UCase(MyFrame.location.href)
 Case "ABOUT:BLANK"
  FileName=""
 Case Else
  FileName=Replace(Mid(MyFrame.location.href,9),"/","\") 'suppress file:///
  OpenIt
 End Select
End Sub

'''''''''''''''''''
' Menu management '
'''''''''''''''''''
Sub ShowSubMenu(Parent,Child)
 If Child.style.display="block" Then
  Parent.classname="Menuover"
  Child.style.display="none"
  Set LastChildMenu=Nothing
 Else
  Parent.classname="Menuin"
  Child.style.display="block"
  Set LastChildMenu=Child
 End If
 Set LastMenu=Parent
End Sub
Sub MenuOver(Parent,Child)
 If LastChildMenu is Nothing Then
  Parent.className="MenuOver"
 Else
  If LastMenu is Parent Then
   Parent.className="MenuIn"
  Else
   HideMenu
   ShowSubMenu Parent,Child
  End If
 End If
End Sub
Sub MenuOut(Menu)
 If LastChildMenu is Nothing Then Menu.className="MenuOut"
End Sub
Sub HideMenu
 If Not LastChildMenu is Nothing Then
  LastChildMenu.style.display="none"
  Set LastChildMenu=Nothing
  LAstMenu.classname="Menuout"
 End If
End Sub
Sub SubMenuOver(Menu)
 Menu.className="SubMenuOver"
 'LastMenu.classname="Menuin"
End Sub
Sub SubMenuOut(Menu)
 Menu.className="SubMenuOut"
End Sub

</script>
</head>

<body leftmargin=0 topmargin=0 rightmargin=0>
<TABLE id=MenuTable><TR>
 <TD onclick='ShowSubMenu Me,MyFileMenu'
  onmouseover='MenuOver Me,MyFileMenu'
  onmouseout='MenuOut Me'> File </TD>
 <TD onclick='ShowSubMenu Me,MyEditMenu'
  onmouseover='MenuOver Me,MyEditMenu'
  onmouseout='MenuOut Me'> Edit </TD>
 <TD onclick='ShowSubMenu Me,MyFindMenu'
  onmouseover='MenuOver Me,MyFindMenu'
  onmouseout='MenuOut Me'> Find </TD>
 <TD onclick='ShowSubMenu Me,MyHelpMenu'
  onmouseover='MenuOver Me,MyHelpMenu'
  onmouseout='MenuOut Me'> ? </TD>
 <TD onclick="HideMenu" width=100% border=2></TD>
 </TR></TABLE>
<TABLE ID=MyFileMenu class=submenu style="left=2;display:none;"><TR>
 <TD onclick="HideMenu:NewText"
  onmouseover='Submenuover Me'
  onmouseout='Submenuout Me'> New</TD></TR>
 <TR><TD onclick="HideMenu:open"
  onmouseover='Submenuover Me'
  onmouseout='Submenuout Me'> Open</TD></TR>
 <TR><TD onclick="HideMenu:save"
  onmouseover='Submenuover Me'
  onmouseout='Submenuout Me'> Save</TD></TR>
 <TR><TD onclick="HideMenu:saveAs"
  onmouseover='Submenuover Me'
  onmouseout='Submenuout Me'> Save As</TD></TR>
 <TR><TD><HR></TD></TR>
 <TR><TD onclick="HideMenu:window.close"
  onmouseover='Submenuover Me'
  onmouseout='Submenuout Me'> Quit</TD></TR>
 </TABLE>
<TABLE ID=MyEditMenu class=submenu style="left=30;display:none;"><TR>
 <TD><HR width=50px></TD></TR>
 </TABLE>
<TABLE ID=MyFindMenu class=submenu style="left=60;display:none;"><TR>
 <TD><HR width=50px></TD></TR>
 </TABLE>
<TABLE ID=MyHelpMenu class=submenu style="left=90;display:none;"><TR>
 <TD onclick='HideMenu:msgbox "No help available yet;under construction ;=)"'
  onmouseover='Submenuover Me'
  onmouseout='Submenuout Me'>Help</TD></TR>
 <TR><TD onclick='HideMenu:CreateObject("MSComDlg.CommonDialog").AboutBox'
  onmouseover='Submenuover Me'
  onmouseout='Submenuout Me'>About</TD></TR>
 </TABLE>

<iframe id=MyFrame application=yes scrolling=no onload="ChangeIFrame"></iframe>

<script language=vbscript>
'We can handle a file as a parameter to this HTA
Dim x
FileName=Trim(oHTA.CommandLine)
x=Instr(2,FileName,"""")
If x=Len(FileName) Then
 FileName="" 'No File Loaded
Else
 FileName=Trim(Mid(FileName,x+1))
 OpenIt
End If
</script>
</body></html>

(0)

相关推荐

  • VB简易记事本实现代码

    事件实现代码: 复制代码 代码如下: Private Sub mQuit_Click() Text1.Text = "" End End Sub Private Sub mNew_Click() Text1.Text = "" Form1.Caption = "未命名" End Sub Private Sub mopen_Click() CommonDialog1.ShowOpen Frame = CommonDialog1.FileName I

  • 怎么运行用记事本写的java程序

    今天用记事本写了一个java程序,测试能运行,现在把它分解成几个步骤,利于大家理解: 1. 新建一个记事本,后缀名是  .java  :然后在里面写一段java的代码,如图: 2.把写好的java文件丢进D盘,就是第一步给出的那个class文件: 3. 打开dos界面 开始-〉运行-〉cmd-〉 这个是命令行模式,选择D盘,如图: 4.选择D盘之后,在命令提示符中输入"javac 文件名.java",我的文件名为java,所以输入javac java.java然后回车,等待编译.这时候

  • Python基于Tkinter实现的记事本实例

    本文实例讲述了Python基于Tkinter实现的记事本.分享给大家供大家参考.具体如下: from Tkinter import * root = Tk('Simple Editor') mi=StringVar() Label(text='Please input something you like~' ).pack() te = Text(height = 30,width =100) te.pack() Label(text=' File name ').pack(side = LEF

  • 使用记事本编写java程序全过程图解

    Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称.Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于个人PC.数据中心.游戏控制台.科学超级计算机.移动电话和互联网,同时拥有全球最大的开发者专业社群. 新建java第一种方法 1首先右击鼠标,新建一个文本文档. 2更改文本文档的后缀名为 .java .注意文件名必

  • Excel、记事本数据导入到数据库的实现方法

    文件示例:Excel: 记事本: 前台代码: 复制代码 代码如下: <div class="tab-content detail" id="divSecond" runat="server" visible="false">            <fieldset >             <p>                <label>                 

  • 简单记事本java源码实例

    本文实例讲述了简单记事本java实现代码.分享给大家供大家参考.具体如下: 完整代码如下: 复制代码 代码如下: import java.awt.*; import java.io.*; import java.awt.datatransfer.*; import java.awt.event.*;   public class Main extends Frame implements ActionListener {         private static final long ser

  • Android实现记事本功能(26)

    本文实例为大家分享了Android实现记事本功能的具体代码,供大家参考,具体内容如下 MainActivity.java代码: package siso.smartnotef.activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.support.

  • 使用Java制作一个简单的记事本

    通过使用Java的Swing.IO来实现一个简单记事本,实现打开指定的text文本文件,然后将text文件的内容加载到Swing组件中,然后在Swing组件中编辑记事本内容,然后同菜单的保存选项将编辑后的内容保存到text文件中.代码如下: 复制代码 代码如下: import java.io.*; import java.nio.*; import java.nio.channels.*; import java.nio.charset.*; import java.awt.*; import

  • python3.5使用tkinter制作记事本

    tkinter是Python下面向tk的图形界面接口库,可以方便地进行图形界面设计和交互操作编程.tkinter的优点是简单易用.与Python的结合度好.tkinter在Python 3.x下默认集成,不需要额外的安装操作:不足之处为缺少合适的可视化界面设计工具,需要通过代码来完成窗口设计和元素布局. 本节采用的Python版本为3.x,如果想在python 2.x下使用tkinter,请通过apt-get进行安装.需要注意的是,不同Python版本下的tkinter使用方式可能略有不同,建议

  • EXTJS记事本 当CompositeField遇上RowEditor

    原因是客户的物料种类非常多,有一千种之多,如果单纯用一个Combobox,那么在实际使用中,很难快速找到一个物料,所以,我使用包含物料分类和物料品牌的两个combobox来组成级联式筛选.问题恰恰出在这儿,如果在roweditor的一个字段中用多个控件,就要处理每个控件的初始化,Change事件.网上目前还未找到有人有好的解决办法.经过3天的调试,我终于解决了问题,把我的代码贴出来: 复制代码 代码如下: var editor=new Ext.ux.grid.RowEditor({ saveTe

随机推荐