编辑:

编辑:

OS: Windows 10

我有这个 python 脚本,它会询问用户是否要打印文件。手动运行这个 python 脚本时,它运行良好。但是,当将 Python 脚本安装为 NSSM 服务时,它会跳过消息框部分。以下不是完整的程序,而是其中的一部分。其余的 python 脚本(下面未包括)的执行情况与它应有的一样,因为它作为服务运行。

#!/usr/bin/python3
import os ,sys
import time
import ctypes  

def SomeProgram():
    if SomeCondition:
        return True, FilePath

def Mbox(title, text, style):
    return ctypes.windll.user32.MessageBoxW(0, text, title, style)

if __name__ == '__main__':
    while True:
        WriteToPdf, FilePath = SomeProgram()
        if WriteToPdf:
            MboxResult = Mbox('Print?', 'Would you like to print the the file?', 4)
            if MboxResult==6:
                #Yes was selected. Thus print the document
                os.startfile(FilePath, "print")
        time.sleep(4) 

如何获取作为 NSSM 服务安装的带有脚本的消息框?

编辑:

NSSM 将以下错误输出到日志文件

Traceback (most recent call last):
  File "C:\temp\FATs\populate_template.py", line 181, in <module>
    MboxResult = Mbox('Print protocoll?', 'Would you like to print the recently saved protocoll', 4)
  File "C:\temp\FATs\populate_template.py", line 168, in Mbox
    return ctypes.windll.user32.MessageBoxW(0, text, title, style)
KeyboardInterrupt

相关内容