WINDOWS-基础:WINDOWS常用API
2013-08-23 10:03
423 查看
1.窗口信息
2.磁盘信息
3.环境变量
4.事件记录信息
5.网络共享
6.网络适配器信息
7.系统性能
8.进程/线程/模块信息
9.关机
10.用户信息
11.系统版本信息
12.文件操作
//MS 为我们提供了打开特定桌面和枚举桌面窗口的函数。 hDesk=OpenDesktop(lpszDesktop,0,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,0,KEY_QUERY_VALUE,&hKey); //打开注册表的键; RegEnumValue(hKey,dwIndex,EnvironVariable, &dwVariableLength,NULL,NULL,NULL,NULL); //查询我们需要的信息值; GetEnvironmentVariable(EnvironVariable,EnvironString,1024); //获得环境变量的字符串信息;
4.事件记录信息
OpenEventLog(NULL,szLog); //打开时间日志记录; GetOldestEventLogRecord(hEvent,&dwThisRecord); //获得最新的日志信息,以便继续查找; ReadEventLog(hEvent,EVENTLOG_FORWARDS_READ │ EVENTLOG_SEQUENTIAL_READ, 0,pEventLogRecord,1024*32,&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,0); //删除网络共享目录;
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,0); //创建进程的快照; 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, 0); //创建线程快照; Thread32First(hThreadSnap, &ThreadEntry32); Thread32Next(hThreadSnap, &ThreadEntry32); //枚举线程信息; OpenThread(THREAD_ALL_ACCESS,FALSE,ThreadEntry32.th32ThreadID); //打开线程,须自己获得此函数地址; TerminateProcess(hProcess,0); //终止进程; SuspendThread(hThread); //悬挂线程; ResumeThread(hThread); //激活线程;
9.关机
AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES),NU LL,NULL); 3 //调整进程令牌,使其支持关机; ExitWindowsEx (EWX_SHUTDOWN,0);//关机 ExitWindowsEx (EWX_REBOOT,0);//重启 ExitWindowsEx ( EWX_LOGOFF ,0);//注销 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+1); //获取Windows目录; GetSystemDirectory(szInfo,MAX_PATH+1); //获取系统目录;
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) //删除目录
相关文章推荐
- jdbc基础编程和常用API
- windows常用api
- 文件传输基础:File类常用的API
- 黑马程序员----Java基础之StringBuffer 与 String的区别(常用API)
- JavaSE复习之三 基础知识:常用API
- Java从基础开始_02Java基础常用API
- Java基础系列(十四)常用API
- JavaSe基础XX17——常用对象API-集合框架_5_ 工具类
- Windows基础——常用的DOS命令
- 黑马程序员 Java基础--API常用类(三)
- 安卓开发之java基础笔记8常用API
- Windows 60个常用API
- MFC/WIWIndows常用API--1
- Java基础(三):Java常用API
- Windows中的桌面编程 常用API介绍——CreateDesktop
- Java SE 基础常用API-字符串基本操作思维导图
- Windows编程基础(API调用)
- 黑马程序员----JAVA基础----常用对象API
- JavaSe基础XX17——常用对象API-集合框架_6_其他对象API
- MFC/WIWIndows常用API--2