Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用python代码关闭和打开LibreOffice Impress_Python_Openoffice.org - Fatal编程技术网

尝试使用python代码关闭和打开LibreOffice Impress

尝试使用python代码关闭和打开LibreOffice Impress,python,openoffice.org,Python,Openoffice.org,用覆盆子皮跑覆盆子。我想在一个触发器发生时打开一个*.odp,然后在另一个触发器发生时,关闭该文件,然后打开另一个*.odp文件。问题是:一旦LibreOffice Impress打开,它似乎不再可用于通过终端接收命令。这些命令似乎只有在我们手动关闭LibreOffice Impress之后才起作用 我们已经成功地通过终端直接发送,并通过python脚本打开特定的*.odp文件。但是,我们似乎无法关闭演示文稿以便打开另一个演示文稿 下面是一段代码。射频代码从遥控器接收 cmd_openShowO

用覆盆子皮跑覆盆子。我想在一个触发器发生时打开一个*.odp,然后在另一个触发器发生时,关闭该文件,然后打开另一个*.odp文件。问题是:一旦LibreOffice Impress打开,它似乎不再可用于通过终端接收命令。这些命令似乎只有在我们手动关闭LibreOffice Impress之后才起作用

我们已经成功地通过终端直接发送,并通过python脚本打开特定的*.odp文件。但是,我们似乎无法关闭演示文稿以便打开另一个演示文稿

下面是一段代码。射频代码从遥控器接收

cmd_openShowOn = "sudo libreoffice --nologo --show /home/pi/Documents/memorable.odp"
cmd_openShowOff = "sudo libreoffice --nologo --show /home/pi/Documents/forgettable.odp"
cmd_kill = "pkill soffice.bin"

if rfdevice.rx_code_timestamp != timestamp:
    timestamp = rfdevice.rx_code_timestamp
    logging.info(str(rfdevice.rx_code) +
                 " [pulselength " + str(rfdevice.rx_pulselength) +
                 ", protocol " + str(rfdevice.rx_proto) + "]")
    if str(rfdevice.rx_code) == "87347": # receives code to trigger closing anything that might be open and opening slide show for 'memorable.odp'
        print ("Laser On")
        os.system(cmd_kill)
        os.system(cmd_openShowOn)

    if str(rfdevice.rx_code) == "87356": # receives code to trigger closing anything that might be open and opening slide show for 'forgettable.odp'
        print("Laser Off")
        os.system(cmd_kill)            
        os.system(cmd_openShowOff)
time.sleep(1)
LibreOffice Impress的任何后续响应都将被忽略,直到我们手动删除LibreOffice Impress。

在上给出了各种想法。请特别注意@sup的回答中提到的
d.terminate()
。各种想法见。特别注意@sup在回答中提到的
d.terminate()