【问题标题】:SendKeys does not work for a particular key combination in QlikView 11SendKeys 不适用于 QlikView 11 中的特定组合键
【发布时间】:2014-08-17 15:17:15
【问题描述】:

正如您在下面的脚本中看到的,我正在尝试使用 SendKeys 发送 Ctrl+Shift+S 以显示所有工作表和 QlikView 中的对象,但它不起作用。但是,如果我发送一些其他键,例如“^s”(Ctrl+S),那么它可以正常工作。

Set objShell = CreateObject("Wscript.Shell")
Set Qv = CreateObject("QlikTech.QlikView")

Qv.OpenDoc "C:\Program Files\QlikView\Examples\Documents\Executive Dashboard.qvw"
set QvDoc = Qv.ActiveDocument
Wscript.Sleep 1000
objShell.AppActivate QvDoc.GetApplication.GetProcessId
objShell.SendKeys "^+s"

【问题讨论】:

  • objShell.SendKeys "^S"(大写 S)应该可以工作
  • 不,这不是问题,大写的“S”和小写的“s”都在工作。此外,所有其他快捷键(如 Ctrl+s、Ctrl+o 等)都可以正常工作,只有当涉及到 (Ctrl + Shift + s) 时才会出现问题。
  • 但是 Ctrl + Shift + s = Ctrl + S ?
  • 在发送密钥方法中,Ctrl + Shift + s != Ctrl + S
  • 因为 "^+b" (Ctrl+Shift+B) 适用于菜单条目 "Bookmarks/More" 我猜这个问题与 QlikView 相关。我猜是因为“显示所有表格”功能缺少菜单条目..

标签: qlikview


【解决方案1】:

在这种特殊情况下,“显示所有工作表和对象”选项(由隐藏的组合键 Ctrl+Shift+S kbd>) 实际上是用户权限,是整个文档安全性的一部分,而像 save 这样的东西通常不是用户权限。

由于文档安全性非常重要,我相信 QlikTech 禁用了对该设置的写入权限。这意味着它只能通过 COM 读取。但是,由于您只是在传递组合键,因此可能不清楚为什么其中任何一个会影响您。但是,当您通过 COM 实例化 QlikView 时,我相信 QlikView 应用程序会检测到这一点,因此会自动禁用任何可能改变文档用户权限的组合键。

另一个原因可能是 QlikView 文档在用户模式而不是管理员模式下运行,因此这也不允许更改用户权限,因此可能值得检查文档上的 SECTION ACCESS

另一种方法是使用指向变量的条件来控制隐藏工作表的可见性,然后使用 Windows 脚本更改变量以显示隐藏工作表。 可以在此处找到有关此解决方案和其他讨论的进一步阅读:http://community.qlik.com/thread/36719#155925

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    相关资源
    最近更新 更多