WINDOWS-基础:WINDOWS常用API
2024-09-30 04:37:54
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)
//删除目录
最新文章
- PHP 对象 “==” 与 “===”
- 遍历Arraylist的方法:
- [LeetCode] TwoSum
- mfc ui库
- __slots__ 属性绑定
- 基于对话框的MFC应用程序基本结构
- linux内核hash list
- python 类属性和实例属性
- Chrome下的语音控制框架MyVoix.js使用篇(四)
- Linux下cut命令用法
- nodejs--express开发个人博客(2)
- Java进阶之网络编程
- Petya勒索病毒疫苗出现,分分钟让电脑对病毒免疫
- Day4 装饰器——迭代器——生成器
- IntelliJ IDEA使用心得之基础篇
- 1-5 hibernate学习笔记(11-14章)
- JDK / JRE zip
- Java学习笔记37(字节流)
- 关于Html class id 命名规范
- iOS - Action Extension
热门文章
- LeetCode: 620 Not Boring Movies(easy)
- java小游戏——猜数字
- [coci2015-2016 coii] Palinilap【字符串 哈希】
- Ubuntu设置右键打开终端
- morphia(2)-添加
- 为什么static方法中不可以调用非static方法
- No bean named 'springSecurityFilterChain' is defined
- 在spring的过滤器中注入实体类(@autowire会失效可使用这个方法)
- GIT GUI克隆github代码
- 前端之CSS布局模型