通过获取磁盘列表,看是否发生变化。可以监控是否插入U盘,拔出U盘等。
#include <stdio.h>
#include <string.h>
#include <io.h>
#include <windows.h>
#define MAXLEN 1024
int main(int argc, char* argv[]){
int first = 1;
int initsize = 0, nowsize = 0;
while(1){
char logicDrive[MAXLEN] = {0};
DWORD dsize = MAXLEN;
DWORD result = GetLogicalDriveStrings(dsize,logicDrive); //获取逻辑磁盘列表
if(result > 0){
char *p = NULL;
p = logicDrive;
while(*p){
if(first){
initsize += strlen(p);
nowsize += strlen(p);
}
else {
nowsize += strlen(p);
}
p += strlen(p)+1;
}
first = 0;
if(nowsize != initsize){ //逻辑磁盘列表发生变化
printf("the number of logical dirve is change.\n");
nowsize = 0;
initsize = 0;
first = 1;
}
nowsize = 0;
}
}
return 0;
}