获取windows操作系统所有用户
2024-10-20 11:30:43
一、知识点简单介绍
1. 利用WindowsApi获取
[DllImport("Netapi32.dll ")]
extern static int NetUserEnum([MarshalAs(UnmanagedType.LPWStr)] string servername, int level, int filter, out IntPtr bufptr, int prefmaxlen, out int entriesread, out int totalentries, out int resume_handle); [DllImport("Netapi32.dll ")]
extern static int NetApiBufferFree(IntPtr Buffer);
应该是取自计算机管理 -> 系统工具 -> 本地用户和组 -> 用户
二、具体实例
1. 引入上述API接口
2. 封装成一个方法
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct USER_INFO_0
{
public string Username;
} public static List<string> GetSysUserNames()
{
List<string> users = new List<string>(); NetUserEnum(null, , , out IntPtr bufPtr, -, out int entriesRead, out int totalEntries, out int resume);
if (entriesRead > )
{
IntPtr iter = bufPtr;
for (int i = ; i < entriesRead; i++)
{
var user = (USER_INFO_0)Marshal.PtrToStructure(iter, typeof(USER_INFO_0));
iter = (IntPtr)((int)iter + Marshal.SizeOf(typeof(USER_INFO_0)));
users.Add(user.Username);
} NetApiBufferFree(bufPtr);
} return users;
}
最新文章
- Convert Sorted List to Binary Search Tree
- 【原】iOS学习之苹果开发者账号的相关操作
- java 常见dos命令
- Android 7.0 UICC 分析(四)
- ASP.NET MVC Web API 学习笔记---第一个Web API程序
- 【USACO】beads
- pod创建的工程找不到库
- BIOS启动项中的设备都有哪些
- 手把手教你WEB套打程序开发
- bug - colorWithPatternImage:
- Spring中的一个错误:使用Resources时报错(The annotation @Resources is disallowed for this location)
- MS SQL SERVER 2008 R2 实例服务启动出现10048错误解决办法
- 【HDOJ】3345 War Chess
- Eclipse默认配色的恢复方法
- webpack命令行
- 6.linux下部署 web 项目
- HMM:隐马尔科夫模型-前向算法
- FPGA学习笔记(三)—— 数字逻辑设计基础(抽象的艺术)
- LeetCode 538 Convert BST to Greater Tree 解题报告
- 学习Python第六天
热门文章
- AQS系列(三)- ReentrantReadWriteLock读写锁的加锁
- webpack学习3.1由浅入深-打包JS
- 《Java基础知识》Java instanceof 运算符
- 织女星开发板使用RISC-V核驱动GPIO
- 如何给div、p添加onload事件?
- go笔记--rpc和grpc使用
- 使用vue脚手架快速创建vue项目(入门)
- PHP-FPM 使用(含多站点多端口)
- C# 使用System.Media.SoundPlayer播放wav格式的声音文件
- Python中:dict(或对象)与json之间的互相转化