【问题标题】:RStudio lost focus when start upRStudio 启动时失去焦点
【发布时间】:2015-06-23 01:28:44
【问题描述】:

当我在 Windows 上启动 RStudio 时,它失去了焦点。在向控制台或脚本窗口输入任何内容之前,我必须单击它。我知道Ctrl-1 专注于脚本窗口,Ctrl-2 专注于控制台窗口;但是,只要我先单击 RStudio,这两个快捷方式都可以使用。

我需要在 RStudio 中设置什么吗?

软件环境:

RStudio Version 0.99.446
Windows 7 Ultimate 64-bit

【问题讨论】:

  • 你找到答案了吗?我知道这个问题已经有一年了,但我刚开始使用 RStudio 并注意到同样的事情。当它在 Windows 中启动时,光标在控制台中闪烁,好像它应该能够接受输入,但我仍然需要先单击它才能真正启用它。与其他 IDE 的工作方式相比,关于 RStudio 如何处理焦点的某些事情似乎不直观。尽管如此——它总体上是一款非常不错的软件。
  • @JohnColeman 不幸的是,我仍然没有找到解决方案。 Windows 7 上RStudio Version 0.99.465 的问题仍然存在。

标签: rstudio


【解决方案1】:

作为一个组合,您可以编写一个 VBScript,它首先打开 RStudio,然后将焦点切换到它:

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.CurrentDirectory = "C:\Program Files\RStudio"
WshShell.Run """C:\Program Files\RStudio\bin\rstudio.exe"""

WScript.Sleep 200 'milliseconds
focused = WshShell.AppActivate("RStudio")
i = 1
Do While Not focused And i < 10
    WScript.Sleep 100
    focused = WshShell.AppActivate("RStudio")
    i = i + 1
Loop

将其保存到桌面上的文件中,名称类似于ToRStudio.vbs。然后,当您单击该图标时,它会打开 Rstudio,然后尝试反复将焦点切换到 RStudio 窗口。在我的原始代码版本中,我依赖于固定的时间延迟,然后才发出对AppActivate 的单个调用。但是,我发现当我上次会话保存的工作区很大时,我的 VBScript 会在 RStudio 准备好之前完成执行。使用上述循环,它会在超时之前反复尝试获取焦点。自从我加入循环以来,它以正确的焦点打开 RStudio 的成功率为 100%。在我删除的一些调试代码中,变量i 在连续 10 次尝试中从未超过 3。

显然,您可能必须更改路径名称,并调整时间。

在我上面的评论中,我说过关于 RStudio 如何处理焦点的某些事情让我觉得违反直觉。从那时起,我发现了 RStudio 的选项,可以自动将焦点切换到控制台采购。默认情况下不这样做是我的想法。这个问题中的问题是我唯一剩下的焦点问题。我现在有点习惯了,所以我不确定我是否真的会使用这个 VBS 脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多