嗯,嗯。我来了,怎么在座的都没表示一下,虽然我们圣门不讲究,但是这也太夸张了吧。(我闪~,小样的这样准头的扔砖头也能砸着本座才怪。话音未落某人就被一块巨石压没影了。砖头不行,巨石不就OK了,路人甲阴笑。)
Windows系统的基石之一:文件系统,甚至Windows注册表实际也是建立在文件系统的基础上。你说既然有之一就有之二?正确,之二就是:内存管理系统。什么?你说既然有之二就有之三?没错,之三就是线程管理系统。什么?你说既然有之三就有之四?靠,还有完没完,一边休息去。
下面我们先来看看Windows的文件系统。Windows的文件发展史我就不说了,目前也就FAT32和NTFS比较有名了。FAT32没什么好说,比较简单。NTFS就复杂了不少,包括基于NTFS的EFS、数据流和安全属性。而我们在上层调用API即可,中层的要发送IRP,底层则要调用中断了。有兴趣的可以去查找相应的资料。
简单的说我们只要能读写修改文件就好了。
C / C++中的文件操作 :
C 中的 fopen、fread、fwrite、fseek、ftell、fclose等f系列函数(当然还包含好用的fprintf和fscanf函数)
C++ 中的 fstream系列
基于Windows的文件操作(当然要了解更详细的用法查MSDN去吧,嘎嘎~)
普通操作:
CreateFile、ReadFile、WriteFile、CloseHandle 几个函数
映射操作:
CreateFile、CreateFileMapping、MapViewOfFile、UnmapViewOfFile、CloseHandle几个函数
文件查找操作:
FindFirstFile(Ex)、FindNextFile、FindClose几个函数
文件其他操作:
GetFileSize(Ex)、GetFileType 、FlushFileBuffers、LockFile(Ex)、UnlockFile(Ex)等
整个文件操作:
CopyFile(Ex)、MoveFile(Ex)、DeleteFile、SHFileOperation等
接着我们来谈谈Windows注册表吧。什么是注册表?在本座看来注册表就是记录系统设定和用户设定的数据库。那么我们怎么来操作注册表呢?
别急,Windows为我们准备好了一系列API函数呢。
操作注册表流程:
打开路径(RegOpenKey[Ex]),保存打开的句柄。(RegConnectRegistry 可以替代它打开远程注册表)
操作句柄(RegQueryValue读取值,RegSetValue写值,RegEnumKey枚举值)
操作完成后,关闭句柄。(RegCloseKey)
Ring3下监视注册表特定值:
RegNotifyChangeKeyValue (例程及说明见MSDN)
读写ini文件的API(为了兼容以前的分类M$分类该系列为注册表操作)
GetPrivateProfile系列读取Ini文件函数(例GetPrivateProfileInt函数)
WritePrivateProfile系列写Ini文件函数
啊?!什么时候人都跑光了?晕,那我还讲啥。回家卖地瓜去(嘘~,不要告诉别人,没办法,最近经济不景气啊)