用vbs如何确定在 HTA 中选择了哪些文本?

问:
您好,脚本专家!如何确定在 HTA 中选择了哪些文本?
-- DO
答:
您好,DO。您知道,大多数人认为每天编写“您好,脚本专家!”专栏是世界上最吸引人、最令人兴奋的工作之一。如果编写此专栏的脚本专家不这么懒惰的话,也许是这样。比如说,很多时候他选择自己认为可以编成脚本的问题。通常他手头没有能完成问题中提到的任务的脚本,但他知道可以编写这样一个脚本。这是行之有效的方法,但不是特别令人兴奋的方法。
不过,这个问题有点不太一样。您如何能确定在 HTA 中选择了哪些文本?哎呀,我们也拿不准您是否能确定在 HTA 中选择了哪些文本。但是,事实证明您能够确定:
<html>
<head>
    <title>HTA Test</title>
</head>
<SCRIPT LANGUAGE="VBScript">
    Sub ShowSelection
        Set objSelection = Document.Selection.CreateRange()
        Msgbox objSelection.text
    End Sub
</SCRIPT>
<body>
     <textarea name="ScriptArea" rows=5 cols=40></textarea><p>
     <input id=runbutton  type="button" value="Show Selection" onClick="ShowSelection">
</body>
我们在这里使用的是一个小而简单的 HTA,其外观如下:

什么?您怎么能没有印象呢?那么,试一试吧。在该文本区域键入一些文本,然后突出显示该文本的一部分:

现在单击标签为 Show Selection(显示选择)的按钮。非常幸运的是,您将看到一个消息框,告诉您哪些文本已被选中:

您说对了:看上去就是这个样子了。

那么,这一切都是如何做到的呢?我们首先创建一个含有一个文本区域和一个按钮的 HTA。我们不讨论创建 HTA 本身的细节,如果您需要一些背景信息,请查看 HTA Developers Center(英文)或 Scripting Week 3 webcast on HTAs(英文)今天我们只重点讨论您单击此按钮时运行的子例程:
Sub ShowSelection
    Set objSelection = Document.Selection.CreateRange()
    Msgbox objSelection.Text
End Sub
没错:只有两行代码。首先我们创建一个新的 TextRange 对象;这一过程可通过调用 CreateRange() 方法来实现,此方法恰好是 Document.Selection 对象的一部分:
Set objSelection = Document.Selection.CreateRange()
事实证明,TextRange 对象的属性之一就是 Text 属性。顾名思义,该属性返回的文本正好是在此特定 TextRange 中找到的文本。要返回当前在 HTA 中选定的文本,我们必须要做的就是显示 Text 属性的值:
Msgbox objSelection.Text
顺便说一下,所选文本并不限于文本框或文本区域中的文本。选择此 HTA 内的任意文本,看看会发生什么:
<html>
<head>
    <title>HTA Test</title>
</head>
<SCRIPT LANGUAGE="VBScript">
    Sub ShowSelection
        Set objSelection = Document.Selection.CreateRange()
        Msgbox objSelection.text
    End Sub
</SCRIPT>
<body>
    <p> Here is some text in an HTA. Select any portion of the text and then
        click the Show Selection button.</p>
  <input id=runbutton  type="button" value="Show Selection" onClick="ShowSelection">
</body>
很酷吧?您知道,也许这真是世界上最吸引人、最令人兴奋的工作。
好了…。

(0)

相关推荐

  • 用vbs如何确定在 HTA 中选择了哪些文本?

    问: 您好,脚本专家!如何确定在 HTA 中选择了哪些文本? -- DO 答: 您好,DO.您知道,大多数人认为每天编写"您好,脚本专家!"专栏是世界上最吸引人.最令人兴奋的工作之一.如果编写此专栏的脚本专家不这么懒惰的话,也许是这样.比如说,很多时候他选择自己认为可以编成脚本的问题.通常他手头没有能完成问题中提到的任务的脚本,但他知道可以编写这样一个脚本.这是行之有效的方法,但不是特别令人兴奋的方法. 不过,这个问题有点不太一样.您如何能确定在 HTA 中选择了哪些文本?哎呀,我们也

  • vbs,hta中选择文件夹对话框实现代码

    复制代码 代码如下: on error resume next SelectFolder function SelectFolder() Const MY_COMPUTER = &H11& Const WINDOW_HANDLE = 0 Const OPTIONS = 0 Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(MY_COMPUTER) Set

  • 从 HTA 中启动应用程序

    如何从 HTA 中启动应用程序? 问: 您好,脚本专家!对于 HTA,有没有什么可以替代 Wscript.Shell 命令?我需要运行某个应用程序并指定要打开的文件. -- DL 答: 您好,DL.是的,我们确实知道这样的命令,可以在 HTA 中使用并可以替代 Wscript.Shell 命令,我们一会儿就会向您介绍.不过,在介绍它之前,我们应注意到您实际上可以在 HTA 中使用 Wscript.Shell 对象.这是一个常会引发混淆之处:因为您在 HTA 中无法使用某些命令(如 Wscript

  • 使用准则进行条件查询--1.4.从窗体中选择查询的条件

    4.从窗体中选择查询的条件 前面的方法虽然简单,但对用户来说操作不够方便,对设计者来说也难以控制,如果通过窗体来实现,这些问题就可以解决了. 如下面的窗体,运行时用户可以在组合框中选择要查询司机的姓名,按下查询按钮就可以看到查询的结果. 下面详细地列出设计的步骤: 创建一个窗体,按下控件向导按钮,在窗体上添加一个组合框.在第一个对话框中选择"我想让组合框在一个表或查询中查找这些值",下一步. 选择一个为组合框提供数据的表或查询.下一步. 选择组合框中要显示的数据,通常除了选择要显示在组

  • 一个用vbs查找硬盘所有分区中的指定程序的代码

    On Error Resume Next '忽略所有错误 Dim filename '声明变量 Dim re Set re=New RegExp '建立正则表达式对象实例 re.Pattern="^([a-z]|[A-Z])+\:\\\w+\.vbs$" If re.Test(WScript.ScriptFullName)=False Then  MsgBox "请在磁盘根目录下运行本程序,否则搜索结果可能会不正确!",,"MessageBox"

  • asp.net中不能在DropDownList中选择多个项 原因分析及解决方法

    示例代码: 复制代码 代码如下: BulkStockBll bll = new BulkStockBll(); DataSet ds = bll.GetBulkStock(); this.ddl_BulkStock.DataTextField = "Name" ; this.ddl_BulkStock.DataValueField = "ID" ; this.ddl_BulkStock.DataSource = ds; this.ddl_BulkStock.Data

  • 在PHP世界中选择最合适的模板与使用方法第1/2页

    在PHP世界中选择最合适的模板 /google 的广告条--> 事情的起因:你用过FastTemplate吗?对于PHP工程中的模板应用,其实我和我的同事们已经在许多的项目中接触过--关于它的好处,我想无论是在实际开发阶段还是上升到设计模式的角度都已经有很多"前辈先哲"讨论过了.就项目实施而言,在一些中型甚至大型的项目中,有效的将HTML(还有其他文本形式的表现层)和PHP代码分开,不仅在开发阶段可以分别提高界面设计人员和应用程序编写人员的工作效率,更会给项目的测试和维护带来巨大

  • vbs:把一段文字中指定字符颜色变成红色的正则

    vbs:把一段文字中指定字符颜色变成红色的正则 function c(Tstr,Word) Dim re Set re = new RegExp re.IgnoreCase =True re.Global=True re.pattern = "("&Word&")" c=re.replace(Tstr,"<font style='color:red;'>$1</font>") End function 调用

  • 在 HTA 中暂停脚本的方法

    问: 您好,脚本专家!如何在 HTA 中暂停脚本? -- TJ 答: 您好,TJ.您知道,从古至今,人们已经花费了巨大的时间和精力来探索生命的意义.脚本专家却从未参与其中.为什么?好吧,先不说懒,我们知道那无关紧要:就算您的确找到了生命的意义,也没人在乎它.没人想知道我们存在的理由:相反,他们 - 同您一样 - 只想知道到底如何才能暂停一个嵌入在 HTML 应用程序 (HTA) 中的脚本.那才是脚本专家为之献身的事业.  现在,如果您不熟悉 HTA,您首先想到的可能是"使用 Wscript.Sl

  • C++算法之在无序数组中选择第k小个数的实现方法

    本文实例讲述了C++算法之在无序数组中选择第k小个数的实现方法.分享给大家供大家参考,具体如下: 从一个无序的整型数组中选出第k小的数,如k=1为最小数,k=n为最大数.这里数组可以是有重复的值! 下面是自己写的一个函数,记在此处来记忆我留下的痕迹! //选择无序数组中第k小的数 #include <iostream> using namespace std ; bool failed = false ; //这里只考虑数组是int型的 int findnumber(int *array,in

随机推荐