• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    如何使一个HTA位于屏幕中心(Win32_DesktopMonitor)

    我们可以调整(如果需要)窗口大小并使其居中,但这样做时会在屏幕上出现瞬间的闪烁。这并不是太明显,其实际结果就是你所期望的:HTA 会位于屏幕中心。我们希望这个过程变得稍微流畅些,但目前我们不得不使用此方法。
    下面是 HTA 示例的代码。(若要实现此过程,请复制该代码,并将其粘贴到记事本中,然后以 .hta 为文件扩展名保存该文件。)我们担心的部分(也是唯一真正有用的部分)是 Window_Onload 子例程,每当 HTA 被加载或更新时,该子例程就自动运行:

    复制代码 代码如下:

    html>
    head>
    title>Centered HTA/title>
    HTA:APPLICATION
    ID="objHTA"
    APPLICATIONNAME="Centered HTA"
    SCROLL="yes"
    SINGLEINSTANCE="yes"
    >
    /head>
    SCRIPT Language="VBScript">
    Sub Window_Onload
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" strComputer "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * From Win32_DesktopMonitor")
    For Each objItem in colItems
    intHorizontal = objItem.ScreenWidth
    intVertical = objItem.ScreenHeight
    Next
    intLeft = (intHorizontal - 800) / 2
    intTop = (intVertical - 600) / 2
    window.resizeTo 800,600
    window.moveTo intLeft, intTop
    End Sub
    /SCRIPT>
    body>/body>
    /html>

    启动此 HTA - 一个快速闪烁之后 - 窗口将调整为 800x600 像素,并将位于屏幕中心。

    好问题:这里将要发生什么?我们先使用一些标准 WMI 代码,连接到本地计算机上的 WMI 服务,然后查询 Win32_DesktopMonitor 类。

    注意。我们假定您的计算机只连接了一台显示器。如果您有多台显示器,您将必须添加一个 WHERE 子句来确保您将检索主显示器的屏幕高度和宽度。

    连接到 Win32_DesktopMonitor 类后,我们将使用下列两行代码来确定当前屏幕的尺寸:

    复制代码 代码如下:

    intHorizontal = objItem.ScreenWidth
    intVertical = objItem.ScreenHeight

    我们已经事先决定,想让 HTA 窗口的宽度为 800 像素,高度为 600 像素。因此,我们可以使用以下代码计算出需要将该窗口的左上角放在什么位置:

    复制代码 代码如下:

    intLeft = (intHorizontal - 800) / 2
    intTop = (intVertical - 600) / 2

    正如您所看到的,我们将获得屏幕宽度(存储在 intHorizontal 变量中)并减去 800 像素(HTA 窗口的水平尺寸)。假定我们有一台分辨率为 1024x768 的显示器。1024 减去 800 得 224:这告诉我们屏幕比 HTA 窗口宽多少。若要使该窗口居中,我们只需确保每个边为 112 像素;这就是用 224(即 intHorizontal – 800)除以 2 的原因。

    然后,对于屏幕高度,重复该过程。对于我们的示例显示器,得到的是 768 – 600(即 168),然后除以 2 得到 84 像素(即该窗口上下边的尺寸)。

    这样,我们还需要做两项工作。第一,将窗口调整到 800x600 像素:

    window.resizeTo 800,600

    第二,相应地放置窗口。这就是我们现在要做的:

    window.moveTo intLeft, intTop

    我们要做的所有事情就是调用 moveTo 方法并移动 HTA 窗口,使其左上角位于距左侧 112 像素、距顶端 84 像素的位置。

    顺便说一下,我们将 resizeTo 方法放在该子例程底端附近,以供教学之用:我们想要将 resizeTo 与 moveTo 一起讲述。然而,当您通过调整窗口启动子程序时,将有一个轻微的、不太明显的闪烁:

    复制代码 代码如下:

    Sub Window_Onload
    window.resizeTo 800,600
    strComputer = "."
    Set objWMIService = GetObject("Winmgmts:\\" strComputer "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * From Win32_DesktopMonitor")
    For Each objItem in colItems
    intHorizontal = objItem.ScreenWidth
    intVertical = objItem.ScreenHeight
    Next
    intLeft = (intHorizontal - 800) / 2
    intTop = (intVertical - 600) / 2
    window.moveTo intLeft, intTop
    End Sub

    这不是个大问题,但有些帮助。我们会继续寻找消除闪烁的方法。(为什么如此困难?理想状态下,在调整和移动 HTA 窗口之前,我们会将其隐藏,这可以使用 Internet Explorer 来执行。然而,我们还没有找到一种使用 HTA 来执行该操作的方法。但我们从未放弃。)

    您可能感兴趣的文章:
    • python使用win32com在百度空间插入html元素示例
    • win32使用openfilename浏览文件窗口示例
    • python字符串加密解密的三种方法分享(base64 win32com)
    • c#用Treeview实现FolderBrowerDialog 和动态获取系统图标(运用了Win32 dll类库)
    • WMI中的Win32_PingStatus类(ping命令实现)
    • nginx win32 版本静态文件测试 (Windows环境)
    • win32安装配置非安装版的MySQL
    • iis Win32状态数值(sc-win32-status)说明
    • PSW.Win32.Magania.ffw(F3C74E3FA248.exe)病毒的清除
    • Worm.Win32.AutoRun.bqn病毒分析解决
    • inst.exe,Setup.exe木马Trojan-PSW.Win32.Magania.cjy解决方法
    • Downloader Win32.Delf.dqu(IRAT.rmvb,mm.exe)分析查杀
    • 木马程序Trojan-Spy.Win32.Agent.cfu清除方法
    • MSN圣诞照片(Backdoor.Win32.PBot.a)病毒分析解决
    • 木马下载器Win32.TrojDownloader.Delf.114688
    • recycle.exe(Trojan-Dropper.Win32.VB.rj)病毒的查杀方法
    • Backdoor.Win32.IRCBot.afm(video.exe)病毒的处理方法
    • win32 api实现简单的消息窗口示例
    上一篇:用hta实现的远程桌面连接脚本
    下一篇:hta 实现的五子棋界面
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    如何使一个HTA位于屏幕中心(Win32_DesktopMonitor) 如何,使,一个,HTA,位于,屏幕,