1.窗口信息

  1. //MS 为我们提供了打开特定桌面和枚举桌面窗口的函数。
  2. hDesk=OpenDesktop(lpszDesktop,,FALSE,DESKTOP_ENUMERATE);
  3. //打开我们默认的Default 桌面;
  4. GetWindowText(hWnd,szWindowText,dwMaxCount);//取得编辑框中的文字
  5. GetWindowThreadProcessId(hWnd,&dwPID);

2.磁盘信息

  1. //获得系统所有磁盘的信息,包括软盘,硬盘,光盘等等;
  2. GetLogicalDriveStrings(dwBufferLength,lpBuffer); //获得逻辑设备的信息;
  3. GetVolumeInformation(lpRootPathName,lpVolumeNameBuffer,
  4. dwVolumeNameSize,&dwVolumeSerialNumber,
  5. &dwMaximumComponentLength,&dwFileSystemFlags,
  6. lpFileSystemNameBuffer,dwFileSystemNameSize);
  7. //获得磁盘卷信息,包括卷名称和格式类型;
  8.  
  9. GetDiskFreeSpaceEx(lpRootPathName,&FreeBytesAvailable,
  10. &TotalNumberOfBytes,&TotalNumberOfFreeBytes);
  11. //探测磁盘的空间使用情况;

3.环境变量

  1. 从注册表中获得环境块的信息:
  2. RegOpenKeyEx(HKEY_LOCAL_MACHINE,RegKey,,KEY_QUERY_VALUE,&hKey);
  3. //打开注册表的键;
  4. RegEnumValue(hKey,dwIndex,EnvironVariable,
  5. &dwVariableLength,NULL,NULL,NULL,NULL);
  6. //查询我们需要的信息值;
  7. GetEnvironmentVariable(EnvironVariable,EnvironString,);
  8. //获得环境变量的字符串信息;

4.事件记录信息

  1. OpenEventLog(NULL,szLog);
  2. //打开时间日志记录;
  3. GetOldestEventLogRecord(hEvent,&dwThisRecord);
  4. //获得最新的日志信息,以便继续查找;
  5. ReadEventLog(hEvent,EVENTLOG_FORWARDS_READ EVENTLOG_SEQUENTIAL_READ,
  6. ,pEventLogRecord,*,&dwRead,&dwNeeded)
  7. //读取日志信息;
  8. LookupAccountSid(NULL,pSid,szName,&dwName,szDomain,&dwDomain,&SNU);
  9. //获取账户的SID,以便获得账户的用户名称;
  10. GetNumberOfEventLogRecords(hEvent,&dwTotal);
  11. //获得事件日志的总数;
  12. CloseEventLog(hEvent);
  13. //不要忘记关闭事件句柄;

5.网络共享

  1. NetShareEnum(NULL,dwLevel,(PBYTE
  2. *)&pBuf,MAX_PREFERRED_LENGTH,&entriesread,&totalentries,&resume);
  3. //列举所有的共享目录及相关信息;
  4. NetApiBufferFree(pBuf);//释放缓冲区;
  5. NetShareDel(NULL,(char *)lpShareNameW,); //删除网络共享目录;

6.网络适配器信息

  1. //我们要探测NIC的信息和网络流量;
  2. GetAdaptersInfo(&AdapterInfo,&OutBufLen);
  3. //获取适配器信息;

7.系统性能

  1. //获取系统的存储器使用情况;
  2. GetPerformanceInfo(&PerfInfo,sizeof(PERFORMACE_INFORMATION))
  3. //获取系统性能信息;

8.进程/线程/模块信息

  1. //在此我们使用工具帮助函数(ToolHelp32)和系统
  2. OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY
  3. TOKEN_ADJUST_PRIVILEGES,&hToken);
  4. //打开进程的令牌,提升权限;
  5. AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES
  6. ),NULL,NULL);
  7. //将进程的权限提升到支持调试(Debug);
  8. CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,);
  9. //创建进程的快照;
  10. Process32First(hProcessSnap,&ProcessEntry32);
  11. //枚举所有进程;
  12. OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,ProcessEntry32.th32ProcessID);
  13. //打开特定进程,以查询进程相关信息;
  14. GetProcessTimes(hProcess,&CreateTime,&ExitTime,&KernelTime,&UserTime);
  15. //获取进程的时间信息;
  16. GetProcessMemoryInfo(hProcess,&PMCounter,sizeof(PMCounter));
  17. //获取进程的存储区信息;
  18. GetPriorityClass(hProcess);
  19. //获取进程的优先权;
  20. GetProcessIoCounters(hProcess,&IoCounters);
  21. //获取进程的IO使用情况;
  22. CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessID);
  23. //创建模块快照;
  24. Module32First(hModuleSnap, &ModuleEntry32);
  25. Module32Next(hModuleSnap, &ModuleEntry32);
  26. //枚举进程模块信息;
  27. CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, );
  28. //创建线程快照;
  29. Thread32First(hThreadSnap, &ThreadEntry32);
  30. Thread32Next(hThreadSnap, &ThreadEntry32);
  31. //枚举线程信息;
  32. OpenThread(THREAD_ALL_ACCESS,FALSE,ThreadEntry32.th32ThreadID);
  33. //打开线程,须自己获得此函数地址;
  34. TerminateProcess(hProcess,);
  35. //终止进程;
  36. SuspendThread(hThread);
  37. //悬挂线程;
  38. ResumeThread(hThread);
  39. //激活线程;

9.关机

  1. AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES),NU LL,NULL); //调整进程令牌,使其支持关机;
  2. ExitWindowsEx (EWX_SHUTDOWN,);//关机
  3. ExitWindowsEx (EWX_REBOOT,);//重启
  4. ExitWindowsEx ( EWX_LOGOFF ,);//注销
  5. LockWorkStation(); //锁定系统;
  6. InitiateSystemShutdown(NULL,szMessage,dwTimeout,FALSE,bSig);
  7. //支持到记时和消息显示的关机/重启;
  8. SetSystemPowerState(bSig,FALSE);//系统休眠;

10.用户信息

  1. NetUserEnum(NULL,dwLevel,FILTER_NORMAL_ACCOUNT,(LPBYTE*)&pBuf,
  2. dwPrefMaxLen,&dwEntriesRead,&dwTotalEntries,&dwResumeHandle);
  3. //枚举系统用户信息;
  4. NetUserDel(NULL,lpUserNameW); //删除指定用户;

11.系统版本信息

  1. GetVersionEx((LPOSVERSIONINFO)&osviex);//获取操作系统的版本信息;
  2. 也可以通过注册表(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
  3. NT\CurrentVersion)获取相关信息:
  4. GetTickCount();
  5. //获取开机时间;
  6. GetComputerName(szInfo,&dwInfo);
  7. //获取计算机名称;
  8. GetUserName(szInfo,&dwInfo);
  9. //获取计算机用户名;
  10. GetWindowsDirectory(szInfo,MAX_PATH+);
  11. //获取Windows目录;
  12. GetSystemDirectory(szInfo,MAX_PATH+);
  13. //获取系统目录;

12.文件操作

  1. DeleteFile(LPCTSTR lpFileName);
  2. //删除文件
  3. CopyFile(LPCTSTR lpExistingFileName,//存在的源文件
  4. LPCTSTR lpNewFileName,//要复制到的目标文件
  5. BOOL bFailIfExists
  6. )
  7. //拷贝文件
  8. MoveFileLPCTSTR lpExistingFileName//源文件
  9. LPCTSTR lpNewFileName//目标文件

  10. //移动文件
  11. CreateDirectoryLPCTSTR lpPathName
  12. LPSECURITY_ATTRIBUTES lpSecurityAttributes
  13. //创建目录
  14. RemoveDirectoryLPCTSTR lpPathName
  15. //删除目录

WINDOWS-基础:WINDOWS常用API的更多相关文章

  1. java基础(15):常用API(Object、String、StringBuffer)

    1. Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象的关系.接下来我们开始使用对象做事情,那么在使用对象做事情之前,我们要学习一些API中提供的常用 ...

  2. JS基础:常用API

    全局属性 typeof() 检测数据类型 parseInt() 从字符串解析一个整数 parseFloat() 从字符串解析一个小数 Number() 强制类型转换为数字 String() 强制类型转 ...

  3. appium 基础:常用api接口(2)

    一.获取手机分辨率 size=driver.get_window_size()#获取手机屏幕大小,分辨率 print(size)#{'width': 720, 'height': 1280} 得到的是 ...

  4. java基础3.0:Java常用API

    本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...

  5. < python音频库:Windows下pydub安装配置、过程出现的问题及常用API >

    < python音频库:Windows下pydub安装配置.过程出现的问题及常用API > 背景 刚从B站上看过倒放挑战之后也想体验下,心血来潮一个晚上完成了基本的实现.其中倒放与播放部分 ...

  6. JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API

    森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397  文章- 0  评论- 78  JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...

  7. Delphi一共封装(超类化)了8种Windows基础控件和17种复杂控件

    超类化源码: procedure TWinControl.CreateSubClass(var Params: TCreateParams; ControlClassName: PChar); con ...

  8. sqlservr (708) 打开日志文件 C:\Windows\system32\LogFiles\Sum\Api.log 时出现错误 -1032 (0xfffffbf8)

    在windows server 2012 standard上新安装好的SQL Server 2014,查看错误日志,发现此报错 sqlservr (708) 打开日志文件 C:\Windows\sys ...

  9. 1-3-2 Windows应用程序常用消息

    主要内容:介绍Windows编程中常用的消息 1.WM_LBUTTONDOWN产生单击鼠标左键的消息 lParam: 低字节包含当前光标的X坐标值 X = LOWORD(lParam); 高字节包含当 ...

  10. windows service宿主web api使用"依赖注入"和“控制反转”的技术实践

    前言 自从几年前抛弃wcf,使用web api 来做服务器端开发之后,就不再迷惑了.但是因为本来从事传统行业管理软件开发,一般都以分布式应用开发为主.纯BS还是比较少,于是比较喜欢用windows s ...

随机推荐

  1. 让webStorm支持自动监听编译scss文件

    前提概要 今日,重装了两波系统,,,之前安装的各种环境都忘光了,重新又踩一次坑的感觉很不舒服,所以记录一下配置自动编译scss一路遇到的坑 一.webstrom run的时候控制台输出的错误中文提示乱 ...

  2. js引用类型的赋值

    在开发中,有时候需要将数组或者对象的值赋予其他另一个变量,但是两个变量之间会相互影响,因为在将引用类型的值赋给其他变量时,赋予的其实是内存中的存储地址 var arr = [1,2,3,4,5] va ...

  3. 3D游戏中人物换装解决方案

    换装基本上是每个网游都必须有的一个功能,每种网游的做法都各有不同,有些是换掉整个模型,有些则是通过可以换掉模型的一个部分完成.前者属于整体换,相对简单些:后者则是通过部分替换实现,目前用的比较多,本文 ...

  4. profiler Reserved Total

    Used Total和Reserved 均是物理内存,其中Reserved是unity向系统申请的总内存,Unity底层为了不经常向系统申请开辟内存,开启了较大一块内存作为缓存,即所谓的Reserve ...

  5. c#file类读写

    private void button4_Click(object sender, EventArgs e) { FileStream fs = File.OpenRead(textBox1.Text ...

  6. builder模式的新学习

    builder模式的新学习 静态工厂和构造器有个共同的局限性:他们不能很好的扩展到大量的可选参数.大多数产品在牧歌可选与中都会有非零的值 对于这种类,应该使用哪种构造器或者静态方法来进行编写?程序员一 ...

  7. MySQL习题1 一对多实例 产品和分类

    /* 需求:建立产品和分类表 1.查询每种分类的产品数量,没有产品的分类也要统计.(cname,quantity) 2.根据分类名称查询分类中的所有产品 */ -- ----------------- ...

  8. Jmeter-提取Json数据进行关联

      1:Json后置处理器提取结果作为下一个sampler的传入参数 1.1:[线程组]->[简单控制器]->[HTTP sampler]->[Beanshell后置取样器]-> ...

  9. [WOJ3010] 骰子

    题目描述: 骰子是一个六面分别刻有一到六点的立方体,每次投掷骰子,理论上得到\(1\)到\(6\)的概率都是\(1/6\). 有骰子一颗,连续投掷\(n\)次,问点数总和大于等于\(X\)的概率是多少 ...

  10. Jmeter----小技巧(3)

    1.关闭启动Jmeter时出现的面板 说明:启动Jmeter的同时往往会打开一个下图所示的面板,经常不小心关掉后,导致Jmeter停止运行,偶尔写了好久的脚本没来得及保存就没了,烦恼不已 怎样避免如上 ...