【问题标题】:Python run process as .exe with out opening any console windowsPython 将进程作为 .exe 运行,而不打开任何控制台窗口
【发布时间】:2018-12-22 18:41:32
【问题描述】:

最近,我尝试制作一个新的键盘记录器,并使用这段代码将其作为后台进程运行:

DETACHED_PROCESS = 0x00000008

pid = subprocess.Popen([sys.executable, "KeyLogger.py"],
                       creationflags=DETACHED_PROCESS).pid  

当我将其作为 python 文件运行时,我的代码可以正常工作,但是当我使用以下命令将其转换为 .exe 文件时:

pyinstaller --onefile myfile.py

它不再起作用了。 但是当我删除这段代码时:

DETACHED_PROCESS = 0x00000008

    pid = subprocess.Popen([sys.executable, "KeyLogger.py"],
                           creationflags=DETACHED_PROCESS).pid   

它工作正常。 现在,我正在寻找一种新方法来将我的 python 代码作为后台进程(如 .exe)运行,而不显示任何控制台窗口。 另外,很抱歉在我的问题中写错了。

【问题讨论】:

    标签: python python-3.x subprocess pyinstaller keylogger


    【解决方案1】:

    通常,python 文件具有扩展名 .py 。如果您想在不打开控制台窗口的情况下运行程序,请将扩展名更改为 .pyw。 要将 .py 文件转换为不会打开控制台的 .exe 文件(使用 PyInstaller),请使用以下命令之一(有关详细信息,请参阅 here):

    pyinstaller -w yourfile.py

    pyinstaller --windowed yourfile.py

    pyinstaller --noconsole yourfile.py

    【讨论】:

    • 我将 .py 转换为 .exe 然后运行它。我希望我的 .exe 文件在没有任何打开的控制台窗口而不是我的 .py 的情况下运行,当我使用子进程库时,它会自动运行它而不显示任何窗口,但是当我将其转换为 .exe 时它不起作用
    • 谢谢,我使用这个命令并且它工作正常:pyinstaller --onefile --noconsole KeyLogger.py
    猜你喜欢
    • 2018-10-29
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 2013-06-30
    • 2012-07-27
    • 1970-01-01
    • 2014-04-20
    • 2013-06-01
    相关资源
    最近更新 更多