求一个让U盘插入后自动导入近期编辑的WORD文档的脚本或者软件,越详细越 ...
发布网友
发布时间:2024-01-22 13:44
我来回答
共1个回答
热心网友
时间:2024-08-30 03:52
是向U盘复制这个最近编辑的文档吗?
可以在XP或03下使用以下代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredEvents = objWMIService. _
ExecNotificationQuery("Select * from Win32_VolumeChangeEvent")
Do
Set objLatestEvent = colMonitoredEvents.NextEvent
Debug.print objLatestEvent.DriveName
Debug.print objLatestEvent.EventType
Debug.print objLatestEvent.Time_Created
Loop
监测磁盘卷的变化
当发生时,使用Win32_LogicalDisk类的DriveType属性判断是否为U盘(DriveType=2)
如果是,就返回Name或CAPTION属性,获得磁盘的盘符
以下操作楼主一定知道了,查询就可以了
当然了,也可以在检测磁盘卷变化的同时以EventType属性来区分是否插入的是U盘,如果是,直接取DriveName就可以了。
我做过类似的东西,可以给你参考:
//Step1 : spy card reader
BOOL CCopyCardAdDlg::Is_CardReader_Insert()
{
UINT uDriveType;
char cDriver;
CString temp;
int i;
cDriver = this->m_cSystemDriver;
for(i=1;i<25;i++)
{
cDriver++;
temp.Format(_T("%c:"),cDriver);
uDriveType = GetDriveType(temp);
if(uDriveType == DRIVE_REMOVABLE)
{
m_cFirstRemovableDriver = cDriver;
return TRUE;
}
else if(uDriveType == DRIVE_UNKNOWN)
break;
else
continue;
}
return FALSE;
}
//Step2 : spy SDMMC
BOOL CCopyCardAdDlg::Is_SDMMC_Insert()
{
ULARGE_INTEGER FreeBytesAvailable,TotalBytes;
char cDriver;
CString temp;
int i;
cDriver = m_cFirstRemovableDriver;
for(i=0;i<=8;i++)
{
temp.Format(_T("%c:\\"),cDriver+i);
TotalBytes.QuadPart=0;
if(!GetDiskFreeSpaceEx(temp,&FreeBytesAvailable,&TotalBytes,NULL))
continue;
m_dbSize = MAXDWORD/Bytes_per_MB*TotalBytes.HighPart + TotalBytes.LowPart/Bytes_per_MB;
if(m_dbSize > 0)
{
m_cCardDriver = cDriver+i;
return TRUE;
}
}
return FALSE;
}
我是用SetTimer来完成侦测动作的.