我正在用Python编写一个简单的程序,它启动我当天需要的程序,并在我喝咖啡时按照我的意愿定位它们。以下是启动和定位Chrome的功能示例。
def chrome():
Popen(['google-chrome'], stdout=os.open(os.devnull, os.O_RDWR), stderr=STDOUT)
time.sleep(5)
call(["/usr/bin/wmctrl", "-r", "Chrome", "-e", "0,1356,0,1200,1055"])
当我登录时,Chrome无法打开。但是,当我运行$ python boot.py
时,它会打开Chrome,等待5秒钟,然后使用wmctrl将窗口与其他未打开的应用程序一起放置。
我通过设置python /home/rony/Documents/python/boot.py
让程序在启动应用程序中启动,我知道它正在执行,因为Skype启动了。启动Skype应用程序与Chrome之间的唯一区别是我使用call('skype')
而不是Popen()
。
是否有Popen()
似乎无法在登录时打开我的应用程序?
答案 0 :(得分:0)
我提到我使用call('skype')
而不是Popen()
。这是因为我可以拨打Skype,而实例不会像Chrome和Thunderbird那样绑定到终端。出于某种原因,只要执行了call()
的实例,它就会阻止程序的其余部分执行。每当我从终端运行程序时都不会发生这种情况。
我认为问题是Popen()
未运行,但事实证明call()
不会让它出现。将call('skype')
更改为Popen('skype')
已解决了我的问题。