javascript HierarchicalTaskAnalysis-hta编程(.hta)

main.hta  code:

  1 <script>window.resizeTo(400,300);</script>
  2 <head>
  3 
  4 <hta:application
  5 
  6 id=myApplication 
  7 applicationName=myMusic
  8 singleInstance=yes
  9 scroll=yes
 10 innerborder=no 
 11 icon=app.ico
 12 selection=yes
 13 version=1
 14 navigable=yes
 15 caption=yes
 16 contextMenu=no
 17 
 18 >
 19 
 20 <style>
 21     
 22 </style>
 23 
 24 </head>
 25 
 26 <body>
 27 <p id="pId">hello Hierarchical Task Analysis</p>
 28 </body>
 29 
 30 <script>
 31 
 32 /** hta config:
 33 APPLICATION
 34 内容是否是HTA,免除安全模式。
 35 
 36 applicationName
 37 此属性为设置HTA的名称。
 38 
 39 singleInstance
 40 此属性为设置是否此应用程序同时只能运行一次。次属性以 applicationName 属性作为标识,默认值为 no。
 41 
 42 border
 43 此属性为设置为HTA的窗口边框类型,默认值为 thick
 44 它可以设为
 45 thick 指定窗口为粗边框
 46 dialog window 指定窗口为对话框
 47 none 指定窗口无边框
 48 thin 指定窗口为窄边框
 49 borderStyle
 50 此属性为设置HTA窗口的边框格式,默认值为 normal。
 51 它可以设为
 52 normal 普通边框格式
 53 complex 凹凸格式组合边框
 54 raised 凸出的3D边框
 55 static 3D边框格式
 56 sunken 凹进的3D边框
 57 
 58 caption
 59 此属性为设置HTA窗口是否显示标题栏或标题,默认值为 yes。
 60 
 61 commandLine
 62 此属性获取启动HTA的参数。
 63 
 64 contextMenu
 65 此属性为设置鼠标右键点击时是否显示上下文菜单。
 66 
 67 icon
 68 此属性为设置应用程序的图标。
 69 
 70 innerBorder
 71 设置是否显示内部3D边界。
 72 
 73 navigable
 74 设置链接文档加载到主HTA窗口或者新的浏览窗口。
 75 
 76 maximizeButton
 77 此属性为设置是否在HTA窗口中显示最大化按钮,默认值为 yes。
 78 
 79 minimizeButton
 80 此属性为设置是否在HTA窗口中显示最小化按钮,默认值为 yes。
 81 
 82 Scroll
 83 此属性为设置是否在右端显示竖向滚动条,默认值为 yes。
 84 
 85 scrollFlat
 86 设置滚动条是3D的或者平面的。
 87 
 88 selection
 89 设置内容是否可以被鼠标或键盘选中。
 90 
 91 showInTaskBar
 92 此属性为设置是否在任务栏中显示此应用程序,默认值为 yes。
 93 
 94 sysMenu
 95 此属性为设置是否在HTA窗口中显示系统菜单,默认值为 yes。
 96 
 97 version
 98 此属性为设置应用程序的版本,默认值为空。
 99 
100 windowState
101 此属性为设置HTA窗口的初始大小,默认值为 normal。
102 它可以设为
103 normal 默认大小
104 minimize 最小化
105 maximize 最大化
106 
107 hta 全名 : Hierarchical Task Analysis
108 */
109 
110 /** window对象:
111     onbeforeunload//退出事件
112     onbeforeunload = function(){alert(1);}
113     
114     onunload //退出事件
115     
116     event
117     
118     onafterprint//打印后事件
119     onbeforeprint
120     
121     onblur = function(){alert(1);}//窗口失去焦点事件
122     
123     status
124     clientInformation
125     clipboardData//剪贴数据object
126     onload
127     onhashchange//url改变事件
128     onscroll
129     maxConnectionsPerServer = 32//http连接最大次数
130     location = location = file:///C:/Users/Administrator/Desktop/1.hta
131     onresize
132     
133 
134 操作本地文件
135 
136 //drive:
137 
138 var fso, fldr, s = "";
139 // 创建FileSystemObject对象实例
140 fso = new ActiveXObject("Scripting.FileSystemObject");
141 // 获取Drive 对象
142 fldr = fso.GetFolder("c:\\");
143 // 显示父目录名称
144 alert("Parent folder name is: " + fldr + "\n");
145 // 显示所在drive名称
146 alert("Contained on drive " + fldr.Drive + "\n");
147 // 判断是否为根目录
148 if (fldr.IsRootFolder)
149 alert("This is the root folder.");
150 else
151 alert("This folder isn't a root folder.");
152 alert("\n\n");
153 // 创建新文件夹
154 fso.CreateFolder ("C:\\Bogus");
155 alert("Created folder C:\\Bogus" + "\n");
156 // 显示文件夹基础名称,不包含路径名
157 alert("Basename = " + fso.GetBaseName("c:\\bogus") + "\n");
158 // 删除创建的文件夹
159 fso.DeleteFolder ("C:\\Bogus");
160 alert("Deleted folder C:\\Bogus" + "\n");
161 
162 
163 //file:
164 
165 (一)创建文件
166 一共有3种方法可用于创建一个空文本文件,这种文件有时候也叫做文本流(text stream)。
167 第一种是使用CreateTextFile方法。代码如下:
168 代码如下:
169 
170 var fso, f1;
171 fso = new ActiveXObject("Scripting.FileSystemObject");
172 f1 = fso.CreateTextFile("c:\\testfile.txt", true);
173 第二种是使用OpenTextFile方法,并添加上ForWriting属性,ForWriting的值为2。代码如下:
174 代码如下:
175 
176 var fso, ts;
177 var ForWriting= 2;
178 fso = new ActiveXObject("Scripting.FileSystemObject");
179 ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
180 第三种是使用OpenAsTextStream方法,同样要设置好ForWriting属性。
181 代码如下:
182 
183 var fso, f1, ts;
184 var ForWriting = 2;
185 fso = new ActiveXObject("Scripting.FileSystemObject");
186 fso.CreateTextFile ("c:\\test1.txt");
187 f1 = fso.GetFile("c:\\test1.txt");
188 ts = f1.OpenAsTextStream(ForWriting, true);
189 
190 (二)添加数据到文件
191 当文件被创建后,一般要按照"打开文件->填写数据->关闭文件"的步骤实现添加数据到文件的目的。
192 打开文件可使用FileSystemObject对象的OpenTextFile方法,或者使用File对象的OpenAsTextStream方法。
193 填写数据要使用到TextStream对象的Write、WriteLine或者WriteBlankLines方法。在同是实现写入数据的功能下,这3者的区别在于:Write方法不在写入数据末尾添加新换行符,WriteLine方法要在最后添加一个新换行符,而WriteBlankLines则增加一个或者多个空行。
194 关闭文件可使用TextStream对象的Close方法
195 
196 (三)创建文件及添加数据例程
197 下面的代码将创建文件、添加数据、关闭文件几个步骤结合起来进行应用:
198 代码如下:
199 var fso, tf;
200 fso = new ActiveXObject("Scripting.FileSystemObject");
201 // 创建新文件
202 tf = fso.CreateTextFile("c:\\testfile.txt", true);
203 // 填写数据,并增加换行符
204 tf.WriteLine("Testing 1, 2, 3.") ;
205 // 增加3个空行
206 tf.WriteBlankLines(3) ;
207 // 填写一行,不带换行符
208 tf.Write ("This is a test.");
209 // 关闭文件
210 tf.Close();
211 
212 (四)读取文件内容
213 从文本文件中读取数据要使用TextStream对象的Read、ReadLine或ReadAll 方法。Read方法用于读取文件中指定数量的字符;ReadLine方法读取一整行,但不包括换行符;ReadAll方法则读取文本文件的整个内容。读取的内容存放于字符串变量中,用于显示、分析。在使用Read或ReadLine方法读取文件内容时,如果要跳过一些部分,就要用到Skip或SkipLine方法。
214 下面的代码演示打开文件、填写数据,然后读取数据:
215 代码如下:
216 var fso, f1, ts, s;
217 var ForReading = 1;
218 fso = new ActiveXObject("Scripting.FileSystemObject");
219 // 创建文件
220 f1 = fso.CreateTextFile("c:\\testfile.txt", true);
221 // 填写一行数据
222 f1.WriteLine("Hello World");
223 f1.WriteBlankLines(1);
224 // 关闭文件
225 f1.Close();
226 // 打开文件
227 ts = fso.OpenTextFile("c:\\testfile.txt", ForReading);
228 // 读取文件一行内容到字符串
229 s = ts.ReadLine();
230 // 显示字符串信息
231 alert("File contents = ‘" + s + "‘");
232 // 关闭文件
233 ts.Close();
234 
235 (五)移动、拷贝和删除文件
236 对于以上三种文件操作,javascript各有两种对应的方法:File.Move 或 FileSystemObject.MoveFile用于移动文件;File.Copy 或 FileSystemObject.CopyFile用于拷贝文件;File.Delete 或 FileSystemObject.DeleteFile用于删除文件。
237 下面的代码演示在驱动器C的根目录下创建一个文本文件,填写一些内容,然后将文件移动到\tmp目录下,再在目录\temp下面建立一个文件拷贝,最后删除这两个目录的文件:
238 代码如下:
239 var fso, f1, f2, s;
240 fso = new ActiveXObject("Scripting.FileSystemObject");
241 f1 = fso.CreateTextFile("c:\\testfile.txt", true);
242 // 写一行
243 f1.Write("This is a test.");
244 // 关闭文件
245 f1.Close();
246 // 获取C:\根目录下的文件句柄
247 f2 = fso.GetFile("c:\\testfile.txt");
248 // 移动文件到\tmp目录下
249 f2.Move ("c:\\tmp\\testfile.txt");
250 // 拷贝文件到\temp目录下
251 f2.Copy ("c:\\temp\\testfile.txt");
252 // 获取文件句柄
253 f2 = fso.GetFile("c:\\tmp\\testfile.txt");
254 f3 = fso.GetFile("c:\\temp\\testfile.txt");
255 // 删除文件
256 f2.Delete();
257 f3.Delete();
258 */    
259     
260     var commandLine=myApplication.commandLine.split(" ");//接收命令行参数
261     
262     var proto = window;
263     
264     for(var k in proto){
265         document.write(typeof(k)+' '+k+' = '+proto[k]+'<br />');
266     }
267     
268     var urler = "H:\\file.hta";
269     var o = new ActiveXObject("Scripting.FileSystemObject");
270     var f = o.createtextfile(urler, true);//创建文件
271     var c = o.GetFile(urler).DateLastModified;//获取最后修改日期属性值
272     alert(c);
273 </script>

 

posted @ 2020-02-16 19:47  鸡儿er  阅读(378)  评论(0编辑  收藏  举报