定时检查测试USB连接状态
2008-08-03 23:11
302 查看
导读:
隔一段时间检测一次USB设备的连接状态,希望通过线程在后台运行,不知道该如何实现,
还有一个数据处理需要的时间很长,也想用多线程来做,但也没有头绪,望指教,谢谢!
这个问题第1个回答:
Sleep不就行了。。。。
这个问题第2个回答:
会不会影响其他线程的执行效率呢?
因为还有一个数据处理的线程在运行中
这个问题第3个回答:
起用多线程实现,不会影响主进程的操作。定时发送检测事件,线程接收事件处理,或者在线程中进行SLEEP死循环即可
这个问题第4个回答:
做一个后台服务.
这个问题第5个回答:
为什么需要监测,设备添加、删除都会有WM_DEVICECHANGE消息发给所有的窗口的。你处理这个消息即可。
这个问题第6个回答:
我这里有个检测USB的代码
不过还是建议你不用多线程,因为这个检测不耗多少资源
BOOL CCopyFileDlg::CheckSavePath()
{
//获取磁盘驱动器
TCHAR szVolumeName[MAX_PATH]={0};
GetLogicalDriveStrings(MAX_PATH,szVolumeName);
TCHAR *pFirst=NULL,*pNext=NULL;
pFirst=pNext=szVolumeName;
//确定保存目录
while( 1 )
{
pNext=pFirst+lstrlen(pFirst)+1;
if( *pNext==_T('/0') )
{
//*pFirst=*pFirst+1;
break;
}
pFirst=pNext;
}
m_strSavePath=pFirst;
return TRUE;
}
//检查是否插入USB存储设备
BOOL CCopyFileDlg::CheckUSB()
{
DWORD dwAttr=GetFileAttributes(m_strSavePath);
if( dwAttr==0xFFFFFFFF )
{
return FALSE;
}
if( (dwAttr &FILE_ATTRIBUTE_DIRECTORY)==FILE_ATTRIBUTE_DIRECTORY )
{
if( GetDriveType(m_strSavePath)!=DRIVE_REMOVABLE )
{
//SendMessage(WM_CLOSE,0,0);
return FALSE;
}
return TRUE;
}
else
{
return FALSE;
}
return FALSE;
}
这个问题第7个回答:
做一个定时器,再配合WM_DEVICECHANGE来实现
本文转自
http://www.qqgb.com/Program/VC/VCJQ/Program_200160.html
隔一段时间检测一次USB设备的连接状态,希望通过线程在后台运行,不知道该如何实现,
还有一个数据处理需要的时间很长,也想用多线程来做,但也没有头绪,望指教,谢谢!
这个问题第1个回答:
Sleep不就行了。。。。
这个问题第2个回答:
会不会影响其他线程的执行效率呢?
因为还有一个数据处理的线程在运行中
这个问题第3个回答:
起用多线程实现,不会影响主进程的操作。定时发送检测事件,线程接收事件处理,或者在线程中进行SLEEP死循环即可
这个问题第4个回答:
做一个后台服务.
这个问题第5个回答:
为什么需要监测,设备添加、删除都会有WM_DEVICECHANGE消息发给所有的窗口的。你处理这个消息即可。
这个问题第6个回答:
我这里有个检测USB的代码
不过还是建议你不用多线程,因为这个检测不耗多少资源
BOOL CCopyFileDlg::CheckSavePath()
{
//获取磁盘驱动器
TCHAR szVolumeName[MAX_PATH]={0};
GetLogicalDriveStrings(MAX_PATH,szVolumeName);
TCHAR *pFirst=NULL,*pNext=NULL;
pFirst=pNext=szVolumeName;
//确定保存目录
while( 1 )
{
pNext=pFirst+lstrlen(pFirst)+1;
if( *pNext==_T('/0') )
{
//*pFirst=*pFirst+1;
break;
}
pFirst=pNext;
}
m_strSavePath=pFirst;
return TRUE;
}
//检查是否插入USB存储设备
BOOL CCopyFileDlg::CheckUSB()
{
DWORD dwAttr=GetFileAttributes(m_strSavePath);
if( dwAttr==0xFFFFFFFF )
{
return FALSE;
}
if( (dwAttr &FILE_ATTRIBUTE_DIRECTORY)==FILE_ATTRIBUTE_DIRECTORY )
{
if( GetDriveType(m_strSavePath)!=DRIVE_REMOVABLE )
{
//SendMessage(WM_CLOSE,0,0);
return FALSE;
}
return TRUE;
}
else
{
return FALSE;
}
return FALSE;
}
这个问题第7个回答:
做一个定时器,再配合WM_DEVICECHANGE来实现
本文转自
http://www.qqgb.com/Program/VC/VCJQ/Program_200160.html
相关文章推荐
- pgpool状态显示不正确时建议退出重新连接再检查
- 关闭windows 7 home basic版 internet 连接状态测试
- 检查USB是否连接
- android检查网络连接状态
- 检查网络电缆与网卡连接状态的命令
- android 检查网络连接状态实现步骤
- 测试网络连接状态
- Linux网络连接状态检查
- android 检查网络连接状态实现步骤
- qt检测网络连接状态【只能检测和路由器的连接,不能测试到外网的连接】
- Android中检查网络连接状态的变化,无网络时跳转到设置界面
- android 检查网络连接状态实现步骤
- 2.测试持久化对象的状态:把hbm转化为DDL,Hibernate连接数据库工具类
- android 检查网络连接状态实现步骤
- android中 检查 网络连接状态的变化,无网络时跳转到设置界面
- Ubuntu下Android如何将手机通过USB连接PC开发测试
- android中 检查网络连接状态的变化,无网络时跳转到设置界面
- android 检查网络连接状态实现步骤
- 用delphi检查网络连接状态3种方式
- 如何检查Android网络连接状态