如何使用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>...