`

HTA,XUL技术的鼻祖

阅读更多
近几年来,XUL方兴未艾,以XAML(WPF),XUL等新技术,代表着一种以标记语言和脚本构造桌面应用程序的潮流,但是有一项Microsoft的技术却一直默默无名,这就是HTA技术,甚至有时候,它也背上了“木马”的恶名,但是HTA却是一切XUL技术的鼻祖。

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提供了当前运行进程的信息,最后运行效果如下



  • 大小: 7.5 KB
  • 大小: 18.7 KB
分享到:
评论
9 楼 ray_linn 2010-01-25  
54五味子 写道
以前不知道啊 呵呵



最近apple以一贯无耻的抄袭精神,在iphone里沿用了hta技术,并改名为PastryKit
8 楼 54五味子 2010-01-21  
以前不知道啊 呵呵
7 楼 无厚之刃 2010-01-11  
竟有此物?以前真没听说过,留下备用吧
6 楼 jjx 2009-06-23  
有一个jabber客户端叫,  http://pandion.be/

是一个使用hta 技术的很好范例
5 楼 summeryhrb 2009-06-23  
hta确实很有意思,hta执行的效果和ie的显示效果是一样的。当时也想测一下hta是否真的不依赖ie。我做的hta效果如下图:

http://www.javaei.com/content/download/2009/6/index2009623.hta
4 楼 ray_linn 2009-06-23  
这个是我刚做出来的软件原型。注意一点:hta不依赖ie而存在,因此它甚至可以运行在winpe中。(需要定制winpe)



3 楼 lobbychmd 2009-06-23  
对了,我就想知道例如 google update 那种桌面软件,界面就像web 一样,是怎么做的捏?
2 楼 幸存者 2009-06-21  
night_stalker 写道
其实我觉得 Ruby 社区没有花精力去搞好和宣传 ActiveScriptRuby 是重大的战略失误 ……

说实话,宣传ruby的基本上都是搞rails的
1 楼 night_stalker 2009-06-21  
其实我觉得 Ruby 社区没有花精力去搞好和宣传 ActiveScriptRuby 是重大的战略失误 ……

相关推荐

    xul_hta_demo.zip

    《初识XUL用户界面UI开发》XUL是Mozilia社区开发技术中的一员,总要是为用户界面UI服务,Firefox就XUL以及其它一系列相关的基础库开发出来的成功之作。事实证明XUL是成功的UI开发技术,本文以一个最简明的视角来向看...

    HTA

    总之,HTA是一种强大的技术,适用于创建定制化的桌面应用程序,尤其在Windows环境下。通过学习和掌握HTA,开发者能够利用Web技术构建不依赖网络环境的应用程序,同时要注意安全问题,确保应用的可靠性和稳定性。

    HTA8506C-MH-002YY HTA8506C-MH+002YY HTA8506C-MD-002YY HTA8506C-M

    HTA8506C-M系列模块,包括HTA8506C-MH-002YY、HTA8506C-MH+002YY、HTA8506C-MD-002YY以及HTA8506C-MD+002YY,是海航信光电技术有限公司推出的一款高效能并行光收发一体模块。这些模块采用了LCC48封装方式,设计紧凑...

    hta格式程序详解

    通过上述介绍,我们可以看到HTA作为一种结合了Web技术和本地功能的应用形式,在特定场景下具有独特的优势和广泛的应用前景。希望这篇详细介绍能够帮助初学者更好地理解和掌握HTA格式程序的基础知识。

    hta文件制作教程.7z

    HTA(HTML Application)文件是基于HTML和脚本技术的应用程序,它允许开发者利用Web技术创建桌面应用程序。这种技术在1990年代末期由Microsoft引入,旨在提供一种更安全、更可控的方式,用于在本地系统上运行交互式...

    好玩的小程序 用hta做的(非原创)

    1. HTML应用程序(HTML Application, HTA):HTA是Microsoft提出的一种技术,它结合了网页技术与桌面应用程序的特点。HTA文件通常以`.hta`为扩展名,可以在没有浏览器的情况下独立运行。由于HTA拥有更高级别的权限,...

    分享一个查看计算机各项信息的HTA | #hta

    标题中的“查看计算机各项信息的HTA”是指使用HTML Application(HTA)技术来创建的一个应用程序,它能够显示用户计算机的各种系统信息。HTA是一种基于HTML、CSS和JavaScript的本地应用,具有桌面应用的特性,比如...

    微软windows脚本中心hta编程

    微软Windows脚本中心HTA(HTML应用程序)编程是一种在Windows环境中使用HTML、JavaScript或VBScript进行桌面应用程序开发的技术。HTA文件本质上是HTML文件,但它们具有本地应用程序的权限,而不是浏览器中的限制。...

    windows的hta很好玩

    HTA应用程序在Windows操作系统上运行,享有与传统桌面应用程序相同的权限,但其编写和维护却相对简单,因为它们基于Web技术。** 在本文中,我们将深入探讨HTA的原理、优势以及如何利用它来开发实用工具。 **一、...

    HTA 正则测试工具

    【HTA正则测试工具】是一种基于HTML应用程序(HTML Application, HTA)技术开发的实用工具,主要用于测试和操作正则表达式。HTA是一种在Windows环境中运行的应用程序,它拥有浏览器的所有功能,但不受浏览器的安全...

    定时关机的小程序(HTA)

    【定时关机的小程序(HTA)】是一个利用HTML Application(HTA)技术编写的应用,其主要功能是为用户提供一个设定时间后自动关机的服务。HTA是一种基于Microsoft Internet Explorer的本地应用程序,它结合了HTML、...

    HTA+EasyUI桌面程序

    【HTA+EasyUI桌面程序】是一种利用HTML Application(HTA)技术和EasyUI框架构建的桌面应用程序。HTA是微软提供的一种技术,它允许开发者使用Web技术(HTML、CSS、JavaScript)创建本地运行的Windows应用程序,而不...

    汉字转拼音工具(hta源码)

    一、hta源码与hta技术 HTA(HTML Applications)是微软开发的一种技术,它允许开发者创建基于HTML、CSS和JavaScript的本地应用程序。hta文件可以直接在Windows系统中运行,无需浏览器支持,拥有与桌面应用程序类似...

    HTA 高温数据中心

    关于HTA高温数据的PPT,欢迎大家下载学习,有什么问题可以随时沟通

    HTA定时关机

    【HTA定时关机】是一种基于HTML应用技术(HTML Application, HTA)和VBScript(Visual Basic Script)的实用程序,用于实现计算机的自动定时关机功能。这种小程序的源码通常由这两种技术结合编写,提供用户友好的...

    发来共享的HTA

    HTA Ajax

    在HTA窗口显示前调整其尺寸的方法 | #hta #javascript

    HTA是一种特殊的Web应用,它允许开发者利用浏览器技术(如HTML、CSS和JavaScript)创建桌面应用程序,但不受到浏览器的安全限制。 在HTA中,可以通过JavaScript的window对象和它的属性以及方法来控制窗口的大小。`...

    2048游戏js版本 hta格式

    总之,《2048游戏js版本 hta格式》是一个结合了JavaScript编程与HTA技术的创新之作,它提供了一个学习和研究的实例,让开发者能够更好地掌握Web技术的运用,同时也为玩家带来了一种全新的游戏方式。通过研究其源代码...

    HTA小程序

    HTA文件通常以.hta为扩展名,运行时不需要浏览器,而是直接在系统上执行,拥有更高的权限,可以访问本地文件系统、注册表等。 对于初学者而言,了解和学习HTA小程序有以下几个关键知识点: 1. **基础结构**:HTA...

Global site tag (gtag.js) - Google Analytics