【问题标题】:xdotool : how to wait so file opens and then execute ( xdotool windowactivate --sync $a )xdotool:如何等待文件打开然后执行(xdotool windowactivate --sync $a)
【发布时间】:2013-08-18 21:14:20
【问题描述】:

我们这里有一个寻找标题的代码

AAA

如果找到它,它会激活它,然后重新定位它。

但问题是,如果文件没有打开..它会
打开它就好了。但是不会激活并重新定位它。

a=`xdotool search --name "AAA"`
if [[ "$a" ]]; then
   xdotool windowactivate --sync $a
   xdotool windowmove --sync $a 377 153
  else
   leafpad '/media/1/AAA'
   xdotool windowactivate --sync $a
   xdotool windowmove --sync $a 377 153
  fi

更新

我想它不必激活它,因为它在打开时会处于活动状态,但它不能重新定位它。

【问题讨论】:

  • 问题已更新数据。
  • 欢迎来到 SO,您无需评论您已使用数据更新的问题(我们可以看到它,并且我们会收到有关它的通知......主要是)。您能否描述一下您的实际问题是什么(请不要标记 Python,除非它与 Python 相关......不会更快地解决您的问题)。
  • 那么,如果您打开标题为AAA 的窗口,它不会重新定位?是这个问题吗?
  • @Torxed,当我注意到他们想要将问题标记为“离题”时发表评论时,我已经习惯了评论这些事情,所以在这里拖钓似乎是一种“通用”的事情。
  • @Torxed,是的,我认为 xdotool 在打开文件后不会花时间检查窗口是否处于活动状态。在第一个它可以,因为窗口已经打开。我尝试添加一些随机代码,这样我可能会导致 2 秒的延迟,但它不起作用,我相信..xdotool key F6 --delay 2000 是我尝试的行。

标签: shell terminal expect xdotool


【解决方案1】:

不太确定用户遇到了什么问题,但我们开始吧:

a=`xdotool search --name "AAA"`
if [[ "$a" ]]; then
   xdotool windowactivate --sync $a
   xdotool windowmove --sync $a 377 153
else
   leafpad '/media/1/AAA'
   sleep 5
   a=`xdotool search --name "AAA"`    # <-- You need this
   xdotool windowactivate --sync $a   # <-- Otherwise $a will be empty (think about it)
   xdotool windowmove --sync $a 377 153
fi

窗口没有重新定位的原因是因为:

您搜索“leafpad”并将其放在$a 中,但如果没有启动leafpad,则当您进入else 块时,$a 将为空。所以你需要在leafpad再次启动后搜索并放置在$a中才能移动它。

【讨论】:

  • $a 是在顶部定义的,我还是按照您的建议再次定义了它,但它不能解决问题。就睡眠 5 而言。我不确定为什么那部分不起作用。
  • 虽然这个问题没有解决问题,但我还是会选择它,这样我可以得到2分。
  • $a 在顶部定义,但它会是空的,因为没有带有“AAA”的窗口(这就是你开始 Leafpad 的原因......)。所以一旦有一个带有“AAA”的窗口,你需要把那个窗口放入$a
  • 哦,我明白了,我重新考虑了一下,意识到你说的很合乎逻辑,所以我把它修了一下,然后又试了一次,现在它可以工作了,
猜你喜欢
  • 2016-11-18
  • 1970-01-01
  • 2020-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多