在Windows操作系统中,可以使用os模块来获取当前登录的用户名。而要获取正在运行的程序的用户名,可以使用psutil模块来实现。下面是一个示例代码,演示如何比较运行中程序的用户名与登录到Windows的用户名:
import os
import psutil
# 获取当前登录的Windows用户名
def get_windows_username():
return os.getlogin()
# 获取指定进程的用户名
def get_process_username(pid):
try:
process = psutil.Process(pid)
return process.username()
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
return None
# 获取当前运行中的所有进程的用户名
def get_running_processes_usernames():
processes = []
for process in psutil.process_iter(['pid', 'name']):
username = get_process_username(process.info['pid'])
if username:
processes.append((process.info['pid'], process.info['name'], username))
return processes
# 比较运行中程序的用户名与登录到Windows的用户名
def compare_usernames():
windows_username = get_windows_username()
running_processes = get_running_processes_usernames()
for pid, name, username in running_processes:
if username.lower() == windows_username.lower():
print(f"Process {pid} ({name}) is running under the same user as Windows.")
else:
print(f"Process {pid} ({name}) is running under a different user than Windows.")
# 调用比较函数
compare_usernames()
运行以上代码,将输出每个正在运行的程序的用户名,并与登录到Windows的用户名进行比较。如果用户名相同,则打印"Process {pid} ({name}) is running under the same user as Windows.";如果用户名不同,则打印"Process {pid} ({name}) is running under a different user than Windows."。
下一篇:比较语言特殊字符