浏览 5337 次
锁定老帖子 主题:HTA,XUL技术的鼻祖
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-20
MSHTA技术起源时间不详,我能查找的是的1999年3月发布的ie 5.0就带有mshta.exe运行时,(Win98SE),远远早于XUL和XAML。与这两种XUL技术不同的是,HTA技术并没有产生新的标记,而只是利用现成的HTML标记,这虽然在流媒体、动画技术等等方便表现力较弱,却带来一个很大的好处,即我们利用现成的网页来构造桌面应用程序。 所谓的HTA,即HTML Application的缩写(HTML应用程序),它通过MSHTA运行时,可以直接将HTML保存成HTA的格程序,该程序就是一个独立的应用软件,与VB、C++等程序语言所设计的软件没什么差别。也有人把HTA称为Javascript/vbscript的GUI. 无疑,现成的javascript框架和AJAX手法都能为HTA所用。 最简单的HTA程序,可以不需要任何脚本,而只是一段纯的html,只需要将其后缀名改为.hta,双击即可运行。 <!—example1.hta--> <html> <head> <title>第一个HTA的例子</title> <style> p {font-size:24;cursor:hand} </style> </head> <body> <center> <p>HTA</P> 运行的效果就和一个普通winform没有区别: 借助脚本语言,HTA可以运行程序、存取文件、调用ActiveX和COM,因此它几乎能完成桌面应用的一切工作,因此利用HTA技术中HTML的强大表现力,HTA可以超炫的界面表现。 如果你想控制HTA程序外观,可以在<HEAD>标签中,添加一行<HTA:Application...>,它提供了边框、标题、最大化按钮、最小化按钮的控制手段。 <HTA:Application border=”thick” caption=”yes” maximizebutton=”yes” minimizebutton=”yes” sysmenu=”yes” windowstate=”normal” > HTA技术可以透过WMI和ActiveX实现强大的功能 <html> <head> <title>Spreadsheet Example</title> </head> <Script Language="VBScript"> Sub Window_Onload Spreadsheet1.TitleBar.Caption = "Process Information" End Sub Sub GetProcesses strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colProcesses = objWMIService.ExecQuery("Select * From Win32_Process") i = 1 For Each objProcess in colProcesses strCell = "A" & i Spreadsheet1.Range(strCell).Cells(1) = objProcess.Name strCell = "B" & i Spreadsheet1.Range(strCell).Cells(1) = objProcess.WorkingSetSize strCell = "C" & i Spreadsheet1.Range(strCell).Cells(1) = objProcess.HandleCount i = i + 1 Next End Sub </script> <body bgcolor="buttonface"> <br> <object classid="clsid:0002E559-0000-0000-C000-000000000046" id="Spreadsheet1"> <param name="DisplayToolbar" value="0"> <param name="DisplayWorkbookTabs" value="0"> <param name="DisplayTitleBar" value="-1"> </object> <p><input type="button" value="Get Process Information" onclick="GetProcesses"> </body> </html> 为插入和配置电子表格控件,我们使用以下几行代码: <object classid="clsid:0002E559-0000-0000-C000-000000000046" id="Spreadsheet1"> <param name="DisplayToolbar" value="0"> <param name="DisplayWorkbookTabs" value="0"> <param name="DisplayTitleBar" value="-1"> </object> 而WMI提供了当前运行进程的信息,最后运行效果如下 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-06-21
最后修改:2009-06-21
其实我觉得 Ruby 社区没有花精力去搞好和宣传 ActiveScriptRuby 是重大的战略失误 ……
|
|
返回顶楼 | |
发表时间:2009-06-21
night_stalker 写道 其实我觉得 Ruby 社区没有花精力去搞好和宣传 ActiveScriptRuby 是重大的战略失误 ……
说实话,宣传ruby的基本上都是搞rails的 |
|
返回顶楼 | |
发表时间:2009-06-23
对了,我就想知道例如 google update 那种桌面软件,界面就像web 一样,是怎么做的捏?
|
|
返回顶楼 | |
发表时间:2009-06-23
最后修改:2009-06-23
这个是我刚做出来的软件原型。注意一点:hta不依赖ie而存在,因此它甚至可以运行在winpe中。(需要定制winpe)
|
|
返回顶楼 | |
发表时间:2009-06-23
hta确实很有意思,hta执行的效果和ie的显示效果是一样的。当时也想测一下hta是否真的不依赖ie。我做的hta效果如下图:
http://www.javaei.com/content/download/2009/6/index2009623.hta |
|
返回顶楼 | |
发表时间:2009-06-23
有一个jabber客户端叫, http://pandion.be/
是一个使用hta 技术的很好范例 |
|
返回顶楼 | |
发表时间:2010-01-11
竟有此物?以前真没听说过,留下备用吧
|
|
返回顶楼 | |
发表时间:2010-01-21
以前不知道啊 呵呵
|
|
返回顶楼 | |
发表时间:2010-01-25
54五味子 写道 以前不知道啊 呵呵
最近apple以一贯无耻的抄袭精神,在iphone里沿用了hta技术,并改名为PastryKit |
|
返回顶楼 | |