【问题标题】:Run a Python program at start-up on Windows在 Windows 上启动时运行 Python 程序
【发布时间】:2015-09-16 19:38:24
【问题描述】:

我正在 Python 上开发一个键盘记录器(只是为了好奇)。该脚本将是一个可执行文件。无法访问计算机,因此该过程不需要 UI 或用户交互。

有什么办法,即使在另一个可执行文件中,也可以让键盘记录器在启动时启动?

【问题讨论】:

  • 也可以创建快捷方式文件,添加到启​​动文件夹中

标签: python windows python-2.7 executable


【解决方案1】:

我不使用 Windows,但您可以尝试制作一个运行您的 Python 文件的 batch 脚本并制作该脚本 Run a program automatically when Windows starts

  1. 单击开始按钮 开始按钮的图片,单击全部 程序,右键单击启动文件夹,然后单击打开。

  2. 打开包含要创建快捷方式的项目的位置 到。

  3. 右键单击该项目,然后单击“创建快捷方式”。新的 快捷方式出现在与原始项目相同的位置。

  4. 将快捷方式拖到启动文件夹中。

正如我所说,我使用 Windows,所以这可能是完全错误的。

您可以参考here 制作BAT 文件,它基本上说:

@echo off
python c:\somescript.py %*
pause

【讨论】:

  • 不必将脚本保存在其他任何地方并创建快捷方式。只需将文件放在开始文件夹中即可。
  • 它不是真正的脚本,它将是一个可执行文件,我想假设我无法访问计算机
  • 我假设键盘记录器是分离的或 GUI 应用程序,因此 OP 不希望从批处理文件中弹出控制台。只需在具有所需命令行的 Startup 文件夹中创建一个快捷方式,使用 pythonw.exe 的完全限定路径,或任何 OP 打包的可执行文件的名称。更好的办法是在用户登录时将此计划任务设置为以最高权限运行(即提升,如果用户是管理员)。
【解决方案2】:

使用 VBScript:

1-> 使用此数据创建 anyname.vbs:

设置 wvbs=CreateObject("Wscript.Shell") wvbs.run "你的文件的完整位置",0

2->将anyname.vbs文件复制到C:\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup这个文件夹中

现在,当 Windows 启动时,它将以隐藏模式运行您的文件

【讨论】:

    【解决方案3】:

    我认为上面的答案太复杂了。我所做的只是通过单击快速访问工具栏,输入“启动”,将我的文件拖放或复制并粘贴到启动文件夹中,然后工作就完成了。

    我使用的是 Windows 10 操作系统,因此您的情况可能会有所不同。

    我希望这是有用的。

    编辑:这个解决方案的关键是让python控制台默认打开.py扩展文件(不是文本编辑器),否则它只会打开文件而不是执行它。要选择打开文件类型的默认程序,请右键单击 .py 文件 -> 打开方式 -> 选择默认程序。看这个例子:

    【讨论】:

      【解决方案4】:

      使用“Start + R”打开运行,然后打开“shell:startup”。它会为您打开一个文件夹(之前在开始菜单中提到的文件夹),并且此文件夹中的每个文件都可以在启动时运行。

      文件夹路径为:"C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"(可以在windows explorer复制,也可以复制这个路径,把你的账号名放在USERNAME)

      这是我在脚本中使用的技巧:

      from os import getcwd
      from shutil import copy
      copy(getcwd()+'/FILE_NAME.exe','C:/Users/USERNAME/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup')
      

      它们也是文件名的一些方法,但我不熟悉它。此代码将其自身复制到启动文件夹并在每次 Windows 启动时启动

      【讨论】:

      • 你也可以使用os.getenv("APPDATA")
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 2011-08-22
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      相关资源
      最近更新 更多