【问题标题】:In an .HTA program, how can I change it's running icon in script (either VBScript or Javascript is fine)?在 .HTA 程序中,如何更改它在脚本中的运行图标(VBScript 或 Javascript 都可以)?
【发布时间】:2023-03-18 16:23:01
【问题描述】:

我想在运行时从自身内部更改正在运行的 HTA 的图标(你知道,窗口左上角的小图标,它运行时位于任务栏上)(很可能使用 VBScript或 JavaScript)。我该怎么做呢?

(我们很清楚,因为谷歌搜索这个问题给了我所有错误的答案:我不想做的是在资源管理器中查看时更改 .hta 文件本身的图标,而我'我不想为任何带有特定图标的东西创建快捷方式。我想让 HTA 在运行时任意更改它自己的运行图标。)

感觉就像是我找不到的简单的东西。

我已经尝试设置(我的 HTA 应用程序对象).Icon,虽然它没有抛出错误,但我什至可以读取该属性,它会显示新值,实际图标不会改变。

【问题讨论】:

    标签: javascript vbscript hta


    【解决方案1】:

    如有疑问,请阅读documentation

    备注

    注意 icon 属性是只读的;但是,ICON 属性可用于设置初始值。

    基本上,你问的是不可能的。

    即使您可以在运行时更改不会更改标题栏中实际图标的属性:

    <html>
    <hta:application id="oHTA"
        icon="C:\path\to\some.ico"
    />
    <script language="VBScript">
    Sub ChangeIcon
        MsgBox oHTA.icon  'output: C:\path\to\some.ico
        oHTA.icon = "C:\path\to\other.ico"
        MsgBox oHTA.icon  'output: C:\path\to\other.ico
        'icon in titlebar still remains the same, b/c only the attribute was updated!
    End Sub
    </script>
    <body>
    <p><input id="foo" type="button" value="Change Icon" onClick="ChangeIcon"></p>
    </body>
    </html>
    

    【讨论】:

    • 是的,我看到了,但是如果我学到了关于 HTA 的一件事,那就是有很多限制的解决方法。这只是谁知道如何去做的问题。 :-)
    • (另外,我了解到那里的每一点文档都有点可疑。图标属性是一个很好的例子 - 它不是只读的。你可以将它设置为任何你想要的没有错误,它会保留你给它的值。它实际上不会改变图标(除非有人知道解决方法),但它绝对不是“只读”。)
    • @Cyber​​Taco 请再读一遍。您设置的是icon 属性icon property 在启动时由该属性填充,并且在初始化后是只读的。
    • 嗯,一个有趣的区别!那么问题 - 我将使用什么代码来尝试设置图标 property (当然,完全期望尝试出错)?
    • 我不知道。在我看来,该属性一开始就不能直接设置,只能在启动时通过 icon 属性的初始值间接设置。
    最近更新 更多