VBScript 发送键“

2024-03-06

我有一个 VBScript 可以取消订阅所有 Steam 创意工坊对象

Code:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "Steam Community :: [GER] Aaron :: Abonnierte Objekte - Opera"
WshShell.AppActivate "Steam Community :: [GER] Aaron :: Abonnierte Objekte - Opera"
WshShell.AppActivate "Steam Community :: [GER] Aaron :: Abonnierte Objekte - Opera"
WshShell.SendKeys "^{2}"
WScript.Sleep 5000
WshShell.SendKeys "jQuery ("[id^='UnsubscribeItemBtn']").children().trigger('click'); setTimeout(function(){location.reload();},500);"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 5000
WshShell.SendKeys "jQuery ("[id^='UnsubscribeItemBtn']").children().trigger('click'); setTimeout(function(){location.reload();},500);"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 5000
WshShell.SendKeys "jQuery ("[id^='UnsubscribeItemBtn']").children().trigger('click'); setTimeout(function(){location.reload();},500);"
WshShell.SendKeys "{ENTER}"

在第 7 行(符号 29)中,它必须发送一个“,但脚本认为它必须在那里结束 SendKey-Command...

我怎样才能防止这种情况发生?


这里的问题有两个方面:

  1. 字符串未正确转义为@Scott https://stackoverflow.com/users/736893/scott has 指出(修订版1) https://stackoverflow.com/revisions/41623814/1, but 他们的最新编辑 https://stackoverflow.com/revisions/41623814/2这不是解决这两个问题的方法"" and Chr(34)是等价的,就我个人而言,我坚持通过加倍引号来转义。

  2. 第 7 行符号 1 处的过程或参数无效(代码:800a0005)

    很可能是由SendKeys() when AppActivate()未设置到正确的窗口。

    注意运行脚本时 VBSEdit 中发生的情况,SendKeys()注入脚本导致运行时错误。

    检查这一点的方法是从返回一个布尔值AppActivate()在继续执行脚本之前确保其成功。

    Option Explicit
    Dim WshShell: Set WshShell = WScript.CreateObject("WScript.Shell")
    Dim IsWindowActive: IsWindowActive = WshShell.AppActivate("Steam Community :: [GER] Aaron :: Abonnierte Objekte - Opera")
    If IsWindowActive Then
        WshShell.SendKeys "^{2}"
        WScript.Sleep 5000
        WshShell.SendKeys "jQuery (""[id^='UnsubscribeItemBtn']"").children().trigger('click'); setTimeout(function(){location.reload();},500);"
        WshShell.SendKeys "{ENTER}"
        WScript.Sleep 5000
        WshShell.SendKeys "jQuery (""[id^='UnsubscribeItemBtn']"").children().trigger('click'); setTimeout(function(){location.reload();},500);"
        WshShell.SendKeys "{ENTER}"
        WScript.Sleep 5000
        WshShell.SendKeys "jQuery (""[id^='UnsubscribeItemBtn']"").children().trigger('click'); setTimeout(function(){location.reload();},500);"
        WshShell.SendKeys "{ENTER}"
    Else
        WScript.Echo "Activating Window Failed"
    End If
    

    Output (因为我没有那个特定的窗口):

    Activating Window Failed
    

    为什么AppActivate() return False?

    至于找出原因AppActivate()回报False我建议回顾一下

    A: WshShell.AppActivate 似乎不能在简单的 vbs 脚本中工作 https://stackoverflow.com/a/23184667/692942.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBScript 发送键“ 的相关文章

  • 从 Java 创建快捷链接 (.lnk)

    我正在用 Java 编写一个安装程序 启动器 并且需要能够在此过程中在用户桌面上创建快捷方式 我对任何想法都感兴趣 认为这是实现这一目标的最佳方法 我考虑过的一个选择是在 Windows 上使用 VB 脚本并使用本机 shortcut ex
  • 批处理cmd中弹出消息

    echo msgbox Hey Here is a message gt tmp tmp vbs cscript nologo tmp tmp vbs del tmp tmp vbs or echo msgbox Hey Here is a
  • “Microsoft VBScript 运行时错误‘800a000d’‘800a000d’

    我有下一个代码 其工作原理如下 从url接收一些参数 将此数据插入名为 clients 的表中 然后我选择客户表中最后引入的数据 最后 它尝试将此数据插入到另一个名为 users 的表中 但我收到这个错误 Microsoft VBScrip
  • HTA 如何获取当前用户的用户名?

    我想获取当前用户的用户名 然后在我的应用程序名称中创建一个链接 该链接看起来像 http localhost id username I tried Dim objNetworkSet objNetwork CreateObject WSc
  • 使用或不使用“执行”语句在 UFT 中设置对象引用

    最近 我被分配了一个项目 其中使用 执行 语句设置对象引用 如下所示 Execute Set objButton XamRibbonWindowAddin XamWindow DashBoard WpfButton Save 然而 我设置对
  • 检测输入框中的粘贴

    我有一个输入框 我想使用 vbscript 或 javascript 没有 jquery 来捕获粘贴事件 使用 onpaste 事件捕获该事件并在 Javascript 中执行您需要的操作 例如 禁用输入文本字段中的粘贴
  • 查找字符串中的所有字符串

    我通过 http 请求响应文本获取 StrTxt 作为 html 字符串 我想找到 StrTxt 中所有出现的 字符串 像这样的东西 for each string in StrTxt StrTxt all matched strings
  • 经典 ASP 中的超时问题

    我正在开发一个经典的 ASP 项目 在从数据库填充数据并将其绑定到 UI 中时遇到超时问题 我们得到以下错误 脚本超时 超出了脚本执行的最长时间 您可以通过为 Server Scripttimeout 属性指定新值或更改 IIS 作为管理工
  • 在 vbs 中比较两个字符串时,Trim 函数不会删除字符串末尾的空格

    我有一个简单的脚本 它需要两个字符串并比较它们 第一个末尾有一个空格 第二个则没有 Function compare str1 str2 dim a If strComp trim str1 trim str2 0 Then msgbox
  • 用于运行 VBS 脚本的 VB GUI 界面

    我有一个 VBS 脚本 需要每月运行一次 它捕获文件信息 例如文件名 类型 修改日期等 当我处理每个文件时 它会将其全部保存到 CSV 文件中 以便我可以在 Excel 上处理它 为了运行脚本 我设置了一个批处理文件 bat 问题是我需要某
  • 从ini文件中读取数据

    我有一个需要输入文件名的 vbscript 代码是 Dim tsout Set tsout gofs CreateTextFile C csv Dim tsin Set tsin gofs OpenTextFile C csv 我该如何配置
  • VBScript 运行时错误“800a000d”

    在我们的业务中 我们使用安全向导来控制和管理活动目录安全性 并对所做的更改进行审计跟踪 这是一个带有 ASP 前端的 SQL 数据库 它还可以与我们的 Active Directory 进行通信 编写该向导的人已经在我们的网站上为公司的另一
  • msscript.ocx 从哪里安装

    我在我的应用程序中使用 msscript ocx 它是 Windows 的 ActiveX 脚本主机 尽管我希望能够对高度可定制的 XP 嵌入式 XPe 使用相同的功能 1 我想知道在XPe上是否可以选择性安装msscript ocx 2
  • 使用 SendKeys.Send() 模拟右 Shift+Ctrl

    I m trying to Send right Shift Ctrl to my RichTextBox But as default it sends the left keys SendKeys Send Is there anywa
  • 如何为命令 net user 在列表中返回的每个用户运行批处理文件?

    我的目标是制作一个通用代码 循环遍历计算机中的所有用户帐户名称并将输出发送到批处理文件 net user 命令输出用户列表 但我想将每个用户名分配给一个参数 所以我应该使用for f命令去做 这可能看起来很简单 但请记住用户名可能在任何位置
  • VBS 脚本 getElementbyID 错误(自动登录脚本)

    我正在编写适用于不同站点的 vbs 脚本文件 但我正在为我的大学网页编写用于互联网页面登录的自动登录脚本 所以我一直在工作直到填写用户名和密码 但我无法让它点击登录 这是大学登录的链接 我不确定您是否可以从网络外访问它 请注意编辑请不要将其
  • 将字符串转换为 UTF-8

    例如 我有一个分配给编码为 ansi 的变量的字符串str 如何将其编码为 UTF 8 你的意思是当它写入文件时 像这样 Set stream CreateObject ADODB Stream stream Open stream Typ
  • 并排启动两个资源管理器窗口

    有没有办法使用批处理脚本并排 垂直平铺 启动两个资源管理器窗口 如果没有 我该如何使用 VBS 来做到这一点 我已经修改了上面的VBS脚本Hackoo完全按照OP的要求去做 脚本中的注释准确地解释了它将做什么 如果两个窗口未设置到正确位置
  • SendKeys 在 Fraps 上不起作用

    对于那些不熟悉 frap 的人 它的屏幕录制程序可以通过快捷键触发 我正在使用 SendKeys SendWait 调用来触发 fraps 我注意到这不会触发 fraps 来录制任何视频 但如果我手动按下该键 fraps 就会被录制 有没有
  • adArray 的 VBScript / ADODB 语法问题?

    我希望有人能给我一些关于我的 vb 脚本的新视角 该脚本的主要目的是使用一些参数执行存储过程 我得到的错误是 预计声明结束 我没有做过太多的 VB 脚本编写 但从目前为止我发现的情况来看 这个错误是由于某种语法问题造成的 我已经查看这个脚本

随机推荐