1.窗口信息

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

2.磁盘信息

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

3.环境变量

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

4.事件记录信息

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

5.网络共享

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

6.网络适配器信息

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

7.系统性能

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

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

 //在此我们使用工具帮助函数(ToolHelp32)和系统
OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY │
TOKEN_ADJUST_PRIVILEGES,&hToken);
//打开进程的令牌,提升权限;
AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES
),NULL,NULL);
//将进程的权限提升到支持调试(Debug);
CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,);
//创建进程的快照;
Process32First(hProcessSnap,&ProcessEntry32);
//枚举所有进程;
OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,ProcessEntry32.th32ProcessID);
//打开特定进程,以查询进程相关信息;
GetProcessTimes(hProcess,&CreateTime,&ExitTime,&KernelTime,&UserTime);
//获取进程的时间信息;
GetProcessMemoryInfo(hProcess,&PMCounter,sizeof(PMCounter));
//获取进程的存储区信息;
GetPriorityClass(hProcess);
//获取进程的优先权;
GetProcessIoCounters(hProcess,&IoCounters);
//获取进程的IO使用情况;
CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessID);
//创建模块快照;
Module32First(hModuleSnap, &ModuleEntry32);
Module32Next(hModuleSnap, &ModuleEntry32);
//枚举进程模块信息;
CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, );
//创建线程快照;
Thread32First(hThreadSnap, &ThreadEntry32);
Thread32Next(hThreadSnap, &ThreadEntry32);
//枚举线程信息;
OpenThread(THREAD_ALL_ACCESS,FALSE,ThreadEntry32.th32ThreadID);
//打开线程,须自己获得此函数地址;
TerminateProcess(hProcess,);
//终止进程;
SuspendThread(hThread);
//悬挂线程;
ResumeThread(hThread);
//激活线程;

9.关机

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

10.用户信息

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

11.系统版本信息

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

12.文件操作

 DeleteFile(LPCTSTR lpFileName);
//删除文件
CopyFile(LPCTSTR lpExistingFileName,//存在的源文件
LPCTSTR lpNewFileName,//要复制到的目标文件
BOOL bFailIfExists
)
//拷贝文件
MoveFile(LPCTSTR lpExistingFileName,//源文件
LPCTSTR lpNewFileName//目标文件

//移动文件
CreateDirectory(LPCTSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes)
//创建目录
RemoveDirectory(LPCTSTR lpPathName)
//删除目录

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. html页面选择图片上传时实现图片预览功能

    实现效果如下图所示 只需要将下面的html部分的代码放入你的代码即可 (注意引入jQuery文件和html头部的css样式,使用的是ajax提交) <!-- 需引入jQuery 引入样式文件 引 ...

  2. ZOJ3164【区间dp】

     题意: 有n个人,有一种关系叫做8g关系,给出m个关系,给出n个人的阵列 问你最多能拿走多少人,拿走以后相邻就是相邻了 思路: 典型的区间dp: dp[i][j] 代表 i-j 最多能去多少人: 如 ...

  3. lightoj 1035【暴力】

    思路: 预处理一下素数数组,然后暴力计算就好了. 类似处理素数因子: #include <cstdio> #include <iostream> #include <st ...

  4. 求N!的长度【数学】

    转自:http://blog.csdn.net/fengdian29147001/article/details/11992755 给一个数X,len=log10(X)+1就是X这个数的长度 ①:当N ...

  5. bzoj3453: tyvj 1858 XLkxc(拉格朗日插值)

    传送门 \(f(n)=\sum_{i=1}^ni^k\),这是自然数幂次和,是一个以\(n\)为自变量的\(k+1\)次多项式 \(g(n)=\sum_{i=1}^nf(i)\),因为这东西差分之后是 ...

  6. 【BZOJ1174】: [Balkan2007]Toponyms

    →原题← ↑这样子我就不复制题面啦~ 就是一题很裸的字典树而已,不过空间卡的很死,直接开个数组 tr[N][52] 什么之类的一定会RE的(惨痛的教训) 当字典树空间不够而时间限制又比较宽松时,我们可 ...

  7. 【TeamViewer】v13.2.26558版本 修改ID

    TeamViewer是一款远程协作软件,可以让你在一台机器上操作另一台机器.比如我最近就经常在家里连接公司的电脑进行远程工作.可以说是对于程序员很好用的一个软件. TeamViewer 使用频繁后会被 ...

  8. rpm、yum(转)

    rpm http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/08/2203153.html yum http://www.cnblogs ...

  9. time库的使用

    首先只需要 import time (典型的,标准的python库的使用方法) 主要包括三类函数 ——时间获取:time() , ctime() , gmtime() ——时间格式化: strftim ...

  10. vi/vim打开文件提示Found a swap file by the name

    问题分析 有一次在远程连接主机时,用vi打开文件my.ini却提示:Found a swap file by the name ".my.ini.swp".百度了下才知道,原来在使 ...