【问题标题】:Extending TestComplete: How to change cursor?扩展 TestComplete:如何更改光标?
【发布时间】:2020-06-09 15:03:09
【问题描述】:


我编写了一个 TestComplete 扩展,以将 Keyword-Test 签名从 TestComplete 更新到外部工具中。 但是,这个动作需要很长时间。这就是为什么我需要将光标从箭头更改为沙漏,并在操作完成后返回箭头。 执行操作的模块是用js编写的。
如果我尝试使用 TestComplete 代码完成建议的以下代码
Win32API.SetCursor(Win32API.IDC_WAIT);
我收到错误“预期对象”。即,TestComplete 扩展中的 js 不知道关于 Win32API 对象,尽管有代码完成建议。
省略 Win32API。前缀具有相同的效果。尝试通过
new ActiveXObject("SomeKindClass")
创建适当的对象 失败,因为我无法为包含一些更改光标的方法的类找到合适的名称。 (我试过了,Microsoft.Win32、Microsoft.Win32API、Win32、Win32API 和其他一些无意义的名称......)
SmartBears 关于编写扩展的描述似乎不包含关于在 js ScriptExtension 中更改光标的提示。 请道歉,如果我忽略了它。
任何建议表示赞赏。感谢您对 F1 的建议!

编辑:
下面描述了一种可能的解决方法。但是,由于时间不够,我无法坚持到最后。也许有人可以确认或否认正确性。那太好了。
步骤:

  • 在 ScriptExtension 中创建一个新的 vbs 模块(或扩展现有的模块,如果有的话)。
  • 在 vbs模块的init方法,加载user32.dll,创建原型 user32.dll 的 LoadCursor 和 CreateCursor 方法。 (见Tutorial
  • 您在 setCursor2* 方法中调用这些方法。
  • 将 Description.xml 中的 setCursor2* 方法声明为命名空间的 RuntimeObject 中的方法(参见 Script Extension Description file
  • 分别调用js模块YourNameSpace.setCursor2Hourglass();YourNameSpace.setCursor2Arrow();中的方法。

【问题讨论】:

    标签: javascript testcomplete


    【解决方案1】:

    不可能从 TestComplete 扩展中显示沙漏。
    原因是,以下引用来自https://support.smartbear.com/testcomplete/docs/working-with/extending/script/creating/specifics.htm

    "如果您的设计时操作针对 TestComplete 执行操作 主窗口(例如,最小化窗口,更改窗口 大小和位置等),就会发生错误。这是由于 到 TestComplete 中线程组织的细节。”

    我猜,“等等”部分包括更改光标……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多