python --windows获取启动文件夹路径/获取当前用户名/添加自启动文件

如何使用Python获取计算机用户名

一、Python自带的getpass模块可以用于获取用户输入的密码,但是它同样可以用来获取计算机用户名。

import getpass

user = getpass.getuser()
print("计算机用户名为:", user)

二、使用os模块获取用户名
Python的os模块在获取系统信息方面提供了很多方法,其中也包括获取计算机用户名的方法。

import os

user = os.environ.get('USERNAME') # Windows 系统
# user = os.getlogin() # Unix/Linux 系统

print("计算机用户名为:", user)

三、使用psutil模块获取用户名
psutil是Python中一个跨平台的系统信息库,可以获取系统信息、进程信息等,也可以用于获取计算机用户名。

import psutil

user = psutil.users()[0][0]

print("计算机用户名为:", user)

四、使用socket模块获取用户名
除了上述三种方法,Python的socket模块同样可以获取计算机用户名。

import socket

user = socket.gethostname()

print("计算机用户名为:", user)

获取启动文件夹路径

startup_path = fr'C:\Users\{getpass.getuser()}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup'
print(os.listdir(startup_path))

windows添加自启动文件

import winreg
def add_to_startup(file_path):    # 要启动的文件入口绝对路径
	key = winreg.HKEY_CURRENT_USER
	key_value = "Software\Microsoft\Windows\CurrentVersion\Run"
	with winreg.OpenKey(key, key_value, 0, winreg.KEY_WRITE) as key:
	winreg.SetValueEx(key, "my_python_script", 0, winreg.REG_SZ, file_path)
	# winreg.DeleteValue(key, "my_python_scrip")  # 清除
	winreg.CloseKey(key)

# path = r'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run'
# key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, path, 0, winreg.KEY_WRITE)
# winreg.SetValueEx(key, 'MyProgram', 0, winreg.REG_SZ, file)
# # winreg.DeleteValue(key, 'MyProgram')
# key.Close()

通过启动文件夹去添加

import getpass
from win32com.client import Dispatch

def create_systemc_start(lnk_name, exe_abs_path):
    '''
    :param lnk_name: 快捷方式名称
    :param exe_abs_path:  要创建的exe绝对路径
    :return: 
    '''
    
    startup_path = fr'C:\Users\{getpass.getuser()}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup'
    start_list = os.listdir(startup_path)

    if lnk_name not in start_list:
        shell = Dispatch('WScript.Shell')
        shortcut = shell.CreateShortCut(os.path.join(startup_path, lnk_name))
        shortcut.Targetpath = exe_abs_path
        shortcut.save()

手动设置文件自启动

1.Win + R 打开运行,输入:shell:startup把要开机自启的程序文件或快捷方式复制到打开的窗口中即可。此方法是打开开始菜单-程序-启动文件夹。

在这里插入图片描述

2.Win + R 打开运行,输入:regedit.exe进入注册表。打开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run位置后,右键空白处新建字符串值,数值数据位置填入所需开机自启动的应用程序位置。

在这里插入图片描述

3.Win + R 打开运行,输入:gpedit.msc进入本地策略组,在计算机配置—Windows设置—脚本(启动/关闭)位置双击启动,并添加相对应的脚本。需要先写bat脚本,需要会写脚本代码

先写一个bat脚本,执行你的exe文件:(新建记事本,复制以下代码,保存,修改后缀为bat)

  @echo off
    start exe路径

在这里插入图片描述

4.我的电脑右键管理,或者window图标右键计算机管理,在计算机管理下,在任务计划程序库下,点击创建基本任务,进行设置操作即可。
在这里插入图片描述

在这里插入图片描述
5.Win + R 打开运行,输入:cmd,使用cmd命令将程序添加到系统服务,开启自动开启即可

添加服务命令:

 sc create 服务名称 binPath= 路径 start= auto 

添加成功后可到系统服务管理中查看管理
注意:命令中’='后有一个空格

Windows cmd命令创建系统服务

sc  create 命令创建一个服务(增加到注册表中) 

双击直接运行。
如下:在命令行模式下执行:

sc create TestService binpath= "c:/in estapp.exe" displayname= "TestService" depend= Tcpip start= auto 

注意:这里的格式,
注意:
1).binPath=后面一定要有个空格,否则会出现错误。
2).如果建错了或者需要修改,这时需要先删除服务,再重新创建,删除服务的命令:

sc delete [serviceName]

在提示建立成功后,可以直接输入“net start TestService”
来启动服务,或者可以直接在“管理工具”的“服务”中直接启动。 (services.msc启动)

C:/Documents and Settings/Administrator>sc create 

描述:
在注册表和服务数据库中创建服务项。
用法:

sc <server> create [service name] [binPath= ] <option1> <option2>... 

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44634704/article/details/132137801