一、知识点简单介绍

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;
}

最新文章

  1. Convert Sorted List to Binary Search Tree
  2. 【原】iOS学习之苹果开发者账号的相关操作
  3. java 常见dos命令
  4. Android 7.0 UICC 分析(四)
  5. ASP.NET MVC Web API 学习笔记---第一个Web API程序
  6. 【USACO】beads
  7. pod创建的工程找不到库
  8. BIOS启动项中的设备都有哪些
  9. 手把手教你WEB套打程序开发
  10. bug - colorWithPatternImage:
  11. Spring中的一个错误:使用Resources时报错(The annotation @Resources is disallowed for this location)
  12. MS SQL SERVER 2008 R2 实例服务启动出现10048错误解决办法
  13. 【HDOJ】3345 War Chess
  14. Eclipse默认配色的恢复方法
  15. webpack命令行
  16. 6.linux下部署 web 项目
  17. HMM:隐马尔科夫模型-前向算法
  18. FPGA学习笔记(三)—— 数字逻辑设计基础(抽象的艺术)
  19. LeetCode 538 Convert BST to Greater Tree 解题报告
  20. 学习Python第六天

热门文章

  1. AQS系列(三)- ReentrantReadWriteLock读写锁的加锁
  2. webpack学习3.1由浅入深-打包JS
  3. 《Java基础知识》Java instanceof 运算符
  4. 织女星开发板使用RISC-V核驱动GPIO
  5. 如何给div、p添加onload事件?
  6. go笔记--rpc和grpc使用
  7. 使用vue脚手架快速创建vue项目(入门)
  8. PHP-FPM 使用(含多站点多端口)
  9. C# 使用System.Media.SoundPlayer播放wav格式的声音文件
  10. Python中:dict(或对象)与json之间的互相转化