USB移动存储设备的检测、写入及弹出

夫人的泡泡鱼 2013-01-10 01:13:34
加精

USB设备的基本操作涉及USB存储设备的插入检测及写入文件,同时可以在写入结束后自动弹出,下面介绍自己的实现方法。

(1)注册设备。

在检测之前需要对检测的设备进行注册。具体的代码如下:

//首先注册设备
void CUSBTestDlg::OnBtnRegister()
{
// TODO: Add your control notification handler code here

static const GUID GUID_DEVINTERFACE_LSIT[] =
{
//GUID_DEVINTERFACE_USB_DEVICE
{0xA5DCBF10,0x6530,0x11D2,{0x90,0x1F,0x00,0xC0,0x4F,0xB9,0x51,0xED}},
//GUID_DEVINTERFACE_DISK
{0X53F56307,0XB6BF,0X11D0,{0X94,0XF2,0X00,0XA0,0XC9,0X1E,0XFB,0X8B}},
//GUID_DEVINTERFACE_HID
{0X4D1E55B2,0XF16F,0X11CF,{0X88,0XCB,0X00,0X11,0X11,0X00,0X00,0X30}},
//GUID_NDIS_LAN_CLASS
{0XAD498944,0X762F,0X11D0,{0X8D,0XCB,0X00,0X00,0X4F,0XC3,0X35,0X8C}}
};
//注册插拔事件
HDEVNOTIFY hDevNotify;
DEV_BROADCAST_DEVICEINTERFACE NotifacationFiler;
ZeroMemory(¬ifacationFiler,sizeof(DEV_BROADCAST_DEVICEINTERFACE));
NotifacationFiler.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
NotifacationFiler.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;

for(int i=0;i<sizeof(GUID_DEVINTERFACE_LSIT)/sizeof(GUID);i++)
{
NotifacationFiler.dbcc_classguid = GUID_DEVINTERFACE_LSIT[i];//GetCurrentUSBGUID();//m_usb->GetDriverGUID();

hDevNotify = RegisterDeviceNotification(m_hWnd,¬ifacationFiler,DEVICE_NOTIFY_WINDOW_HANDLE);
if(!hDevNotify)
{
int Err = GetLastError();
MessageBox("RegisterDeviceNotificationFailed");
}
else
MessageBox("RegisterDeviceNotificationSuccess");
}
}

(2)利用ON_WM_DEVICECHANGE实现检测。

这里需要手动添加ON_WM_DEVICECHANGE消息。首先头文件中声明响应函数:

afx_msg BOOL OnDeviceChange(UINT nEventType, DWORD dwData);

定义响应函数:

[code=css]BOOL CUSBTestDlg::OnDeviceChange(UINT nEventType, DWORD dwData)
{
PDEV_BROADCAST_HDR pdb;
PDEV_BROADCAST_VOLUME pdbv;
CString strVolume="";

pdb = (PDEV_BROADCAST_HDR)dwData;
switch(nEventType)
{
case DBT_DEVICEARRIVAL:
// Check whether a CD or DVD was inserted into a drive.
if(pdb->dbch_devicetype==DBT_DEVTYP_VOLUME)
{
pdbv = (PDEV_BROADCAST_VOLUME)pdb;
JudgeDeviceChangePath(pdbv->dbcv_unitmask,strVolume);//获取卷标
g_strVolume = strVolume;
IOFileToMobileDevice(strVolume);//写入数据
}
if(pdb->dbch_devicetype==DBT_DEVTYP_DEVICEINTERFACE)
{

}
break;
case DBT_DEVICEREMOVECOMPLETE:
break;
default:
break;
}
return TRUE;
}
[/code]
(3)弹出USB设备。

BOOL CUSBTestDlg::UnInstallUsb(char szDriveName)
{
DWORD accessMode = 0, shareMode = 0;
HANDLE hDevice;
ULONG returned = 0,bResult = 0;
DWORD dwError;
shareMode = FILE_SHARE_READ | FILE_SHARE_WRITE; // default
accessMode = GENERIC_WRITE | GENERIC_READ; // default
if(szDriveName == 0)
{
return FALSE;
}
CString vol_string = "\\\\.\\A:";
vol_string.SetAt(4, szDriveName);
TRACE("%s",vol_string);
hDevice = CreateFile(vol_string,accessMode,shareMode,NULL,OPEN_EXISTING,0,NULL);
if(hDevice == INVALID_HANDLE_VALUE)
{
CString debugInfo;
dwError = GetLastError();
debugInfo.Format("error = %d ", dwError);
TRACE("IOCTL_STORAGE_EJECT_MEDIA errorcode = %d \n", dwError);
return FALSE;
}
bResult = DeviceIoControl(hDevice,IOCTL_STORAGE_EJECT_MEDIA,NULL,0, NULL,0,&returned, NULL);
if(!bResult) // IOCTL failed //经实验,有时虽然失败了,U盘还是能弹出
{
CString debugInfo;
dwError = GetLastError();
debugInfo.Format("error = %d ", dwError);
TRACE("IOCTL_STORAGE_EJECT_MEDIA errorcode = %d \n", dwError);
}
bResult = CloseHandle(hDevice);
if(!bResult)
{
CString debugInfo;
dwError = GetLastError();
debugInfo.Format("error = %d ", dwError);
TRACE("IOCTL_STORAGE_EJECT_MEDIA errorcode = %d \n", dwError);
return FALSE;
}
return TRUE;
}

这个函数在按钮的实现中,即把卷标传入即可:

void CUSBTestDlg::OnButton1() 
{
// TODO: Add your control notification handler code here
UnInstallUsb((char)g_strVolume.GetAt(0));
}

(4)需要的读取卷标和写入的函数。

void CUSBTestDlg::JudgeDeviceChangePath(DWORD dwData, CString &strPath)
{
for(int i=0;i<32;i++)
{
if(dwData&0x01)
{
//获取盘符
CString str=char('A'+i);
strPath+=str;
break;
}
dwData = dwData>>1;
if(dwData==0x0000)
break;
}

}

void CUSBTestDlg::IOFileToMobileDevice(CString str)
{
FILE* stream = NULL;
char paramfilepath[200];
strcpy(paramfilepath,str);
strcat(paramfilepath,":\\param.txt");
if((stream = fopen(paramfilepath,"w"))!=NULL)
{

fprintf(stream,"%d\n",11);
}

CTime m_SysTime = CTime::GetCurrentTime();
CString TimeStr;
TimeStr = m_SysTime.Format("%Y%m%d%H%M%S");
fprintf(stream,"%s\n",TimeStr);

fclose(stream);
stream = NULL;

MessageBox("Write Success");
}

(5)注意事项。

头文件中需要包含:

#include <dbt.h>//
#include <winioctl.h>//IOCTL_STORAGE_EJECT_MEDIA未定义的问题

在StdAfx.h中定义如下:

#define WINVER 0X0500

这个宏定义的位置必须正确,在

#if !defined(AFX_STDAFX_H__30C2945E_D8FC_4DCD_B67A_099B447FE1AD__INCLUDED_)
#define AFX_STDAFX_H__30C2945E_D8FC_4DCD_B67A_099B447FE1AD__INCLUDED_

//solved 'DEV_BROADCAST_DEVICEINTERFACE' : undeclared identifier

#define WINVER 0X0500

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

下载地址:http://download.csdn.net/detail/zqckzqck/4980910
...全文
12808 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluevox3000 2014-04-08
  • 打赏
  • 举报
回复
能快速拷贝U盘内容不?
shuzhongxunyu 2014-03-29
  • 打赏
  • 举报
回复
好好跟楼主学习下。
wsdw2wew 2014-02-07
  • 打赏
  • 举报
回复
谢谢分享~~~~
sj187164575 2013-06-06
  • 打赏
  • 举报
回复
引用 41 楼 zhaobangyu 的回复:
楼没有发现弹出方法,只能弹了USB,不能弹出移动硬盘的。
请问一下你有解决弹出移动硬盘的问题没?
em78447 2013-05-29
  • 打赏
  • 举报
回复
好文章,以后开发USB用的着!
pingfandexingfu 2013-05-24
  • 打赏
  • 举报
回复
shuzhongxunyu 2013-05-22
  • 打赏
  • 举报
回复
学习了。。。。
奔跑的大象 2013-05-16
  • 打赏
  • 举报
回复
楼没有发现弹出方法,只能弹了USB,不能弹出移动硬盘的。
shuzhongxunyu 2013-05-08
  • 打赏
  • 举报
回复
感谢楼主啊。。
carol77789 2013-05-03
  • 打赏
  • 举报
回复
if(pdb->dbch_devicetype==DBT_DEVTYP_DEVICEINTERFACE) { }这个你怎么实现? 有的usb存储设备(有些U盘)插入时只能收到这个消息,并不是DBT_DEVTYP_VOLUME,这时你怎么进行判断的? 不能从卷标入手,你怎么写入该设备??
shuang_yi 2013-03-28
  • 打赏
  • 举报
回复
感谢分享~~
youjianguook 2013-01-14
  • 打赏
  • 举报
回复
要我们菜鸟怎么学习啊!!
Ahh_Freshmeat 2013-01-14
  • 打赏
  • 举报
回复
菜鸟看不懂 求大神详解一下
mnys0101 2013-01-14
  • 打赏
  • 举报
回复
感谢lz的分享
TOVLOVE 2013-01-14
  • 打赏
  • 举报
回复
看不懂啊!!!!!!!!!!!!
hdg3707 2013-01-13
  • 打赏
  • 举报
回复
多谢LZ分享……
万里 2013-01-13
  • 打赏
  • 举报
回复
挺深奥的
zjwn2 2013-01-13
  • 打赏
  • 举报
回复
感谢分享~~
mayouj 2013-01-13
  • 打赏
  • 举报
回复
顶起,需要学习,值得学习.
rht4780000 2013-01-12
  • 打赏
  • 举报
回复
学习了 谢谢楼主
加载更多回复(27)
首先关于 [评价可免费] 的严重声明: 一、评价=评论加评价(评星星); 二、评价必须是下载完了该资源后的评价,没下载就评论无效; 三、如果正确评价了,返还积分可能需要等等,系统需要反应下。呵呵 评论时记得要评分。然后会返回给你花费的分再加1分.理论上有十分就可以下载完所有的资源了。一般人我不告诉他。 第一款真正意义上的U盘扩容检测工具 集5大功能于一身:扩容检测、坏块扫描、速度测试、老化测试、坏块屏蔽 MyDiskTest是一款U盘/SD卡/CF卡等移动存储产品扩容识别工具。可以方便的检测存储产品是否经过扩充容量,以次充好。 还可以检测FLASH闪存是否有坏块,是否采用黑片,不破坏磁盘原有数据。 并可以测试U盘的读取和写入速度,对存储产品进行老化试验。是你挑选U盘和存储卡必备的工具。 MyDiskTest在手,U盘无忧 第一款真正意义上的U盘扩容检测工具。 集5大功能于一身:扩容检测、坏块扫描、速度测试、老化测试、坏块屏蔽。 MyDiskTest是一款U盘/SD卡/CF卡等移动存储产品扩容识别工具。可以方便的检测存储产品是否经过扩充容量,以次充好。还可以检测FLASH闪存是否有坏块,是否采用黑片,不破坏磁盘原有数据。 并可以测试U盘的读取和写入速度,对存储产品进行老化试验。是你挑选U盘和存储卡必备的工具。 ★MyDiskTest主界面,此时未插入存储设备,软件提示:请插入要测试的设备。 ★MyDiskTest会自行侦测所有插入的可移动磁盘,选择你要检测的磁盘。 ★点击“立即开始测试此驱动器”,稍等片刻,结果马上知晓。没错,就是这么简单! ★选中“同时检测是否采用黑片”,从结果中可以看,实际容量比未选中时略小一些,结果更为严谨。 “坏块检测”与“同时检测是否采用黑片”的区别: 两者检测的算法不同,前者速度快,适合要大批量检测扩容使用,但无法得知是否采用了黑片FLASH。 后者检测速度慢一些,结果更为严格,并且可以得知是否采用黑片,建议普通消费者使用。 如果没有检测到扩容,那么就恭喜啦。当然还可以选择“全面扫描”进一步测试。 ★如果检测到坏块,就会弹一个提示框,可以选择进入坏块屏蔽功能。 PS:不过建议大家还是用ChipGenius检测后,用相应的量产工具进行量产。 ★坏块软屏蔽窗口,左下方自动显示要操作的磁盘名称。 ★点击“立即执行”,如果磁盘存有文件,就会弹一个提示框,询问是否进行格式化, 为了能够完全屏蔽坏块,我们当然选择“是”了。 ★点击开始进行格式化。 ★开始屏蔽坏块操作,显示为“0”的表示是好的块,显示为“X”的表示为坏块。右边是坏块列表,看来坏块还真不少。 下方提示“坏块空间已被隔离,可以放心使用”。这时就可以关闭窗口了。(如下图) 全面扫描及检测坏块功能: 如果在上一步的测试中没有发现问题,我们还可以再进行更为严格的全面扫描。 选择“全面扫描及检测坏块功能”,注意这个方式扫描速度较慢,但可以检测移动盘坏块的数量和U盘实际可用空间。并可测试U盘的读写速度(如下图) U盘/存储卡是现代人交换数据,存储文件的重要途径和载体,所以安全问题显得尤其重要,如何挑选一款好U盘就成了首当其冲的问题。 ★使用MyDiskTest的“稳定性测试(老化测试)”功能就可以帮助你挑选到一款稳定品质的U盘/卡。 我们先勾选“全面扫描”,再勾选“稳定性测试”,在后面会有一个数字框让我们输入老化测试的次数。一般使用默认的5次即可,也可以输入更高的次数,当然测试的时间会更长,在中途可以按停止测试来中止,也可以查看结果。(如下图) ★点击“立即开始”,结果来了,我的劣质U盘连2次测试都未通过! 速度测试: MyDiskTest集成了功能完善的速度测试模块,模拟我们正常读写文件,使测试的结果更加真实可靠。完全可以满足大家测试移动磁盘的需求,帮助大家挑选到一款高速U盘/卡。 ★选择“速度测试”,点击“立即开始”,稍等一会,测试结果就来了:平均读写速度、峰值读写速度。 ★如果你觉得这个结果太简洁了一些,那就选中“文件操作速度测试”,这时会弹高级速度测试窗口。 ★呵呵,看起来一目了然吧,最上面一栏显示待测磁盘的盘符和磁盘名称,第二栏左边是将要测试的项目,中间一栏在测试时会显示测试的结果。其它的就看图吧,点击“开始测试”let’s go ★速度测试结果,赶紧抓图帖到网站上让大家伙评评。就我这自已“生产”的扩容U盘,有这个速度算是不错了。不过想要逃MyDiskTest的慧眼还是不可能的。它早就看穿我的扩容真面目啦。 ★关闭MyDiskBenchmark窗口,刚才速度检测的结果文本就保存到主程序窗口中了。 ----------------------------------- 历史更新: V2.10 增加一种坏块检测算法(未选检测黑片时为快速测扩容),可满足大量检测的需求 增加文件操作速度测试模块,检测的结果更帖近实际操作 V2.00 1、增加英文语言界面,并可根据操作系统自动识别 2、增加屏蔽FLASH坏块功能,使数据存储更安全 注意:使用此功能后格式化磁盘会使屏蔽功能失效 V1.80 1、加强了速度测试功能,在选购存储产品时更加实用 2、修正了当U盘没有一个好区块时显示为1M的bug V1.70 1、增加了对量产成本地磁盘的U盘的支持 2、增加对量产为USB HDD的U盘的识别能力 3、修正了一个可能造成非法操作的问题 4、排除了对USB光驱的检测,因为不可写 V1.60 1、修正了测试错的处理,当测试是可能导致数据损坏的情况给提示。 2、加入了进行稳定性(老化)测试时可以选择测试的次数。 V1.50 1、增加了稳定性(老化)测试功能,助你挑选质量上乘的U盘/存储卡 2、增加了显示设备名称功能 3、修正了一个可能导致内存溢非法操作的bug 4、优化了程序代码 V1.45 1.改进了快速扫描方式的算法,扫描结果更准确(代价是比原来稍慢) 2.增加了自动感应USB设备插拔,不必每次换设备都手动刷新(注意!测试中一定不要插拔被测设备,以免数据丢失!且测试过程中不响应其他设备的插拔动作。) V1.40 优化了磁盘坏块扫描算法 V1.30 改进了无法检测大于2G容量问题,改进检测算法 ----------------------------------- 问题反馈: http://www.mydigit.net/read.php?tid=22095 ----------------------------------- 使用声明: 在检测前请自行备份U盘/SD卡内的文件资料,以防数据丢失。
U盘工具包集多款U盘测试、芯片检测、扩容检测、实用工具于一体,包含如下: 一、U盘速度检测 1,ATTO Disk Benchmarks V2.46; 2,HD Tune Pro V4.01 专业版; 3,FastCopy V2.02; 4,HD Tach V3.0.1.0; 二、U盘产品检测 1,ChipGenius芯片精灵V3.01【USB主控芯片检测工具】; 2,MyDiskTest V2.93【U盘扩容检测/速度测试工具】; 3,FlashGenius V3.4【闪存精灵/FLASH参数查询】 ; 三、U盘实用工具 1,护U使者 V1.28【全能型优盘工具】; 2,弹U专家 v1.06【强力卸载无法删除的USB移动存储设备】; 3,魅色U盘精灵 V1.74【U盘加密+文档同步+计算机锁定】; 四、U盘启动&格式化 1、USBoot V1.70【U盘启动盘制作工具】; 2、HP优盘格式化工具HPUSBFW 2.20.exe; 3、HA-LLFTOOL 低级格式化; 更新说明 -- 2010-9-5 ----------------------------------------------------------------- 新增 HP优盘格式化工具HPUSBFW 2.20; 新增 HA-LLFTOOL低格工具汉化版; 更新 FastCopy 至 V2.02; V2.02 1.如果Fastcopy安装于Vista或者Win7系统的Progmram Files文件夹(无论UAC是否开启)时,配置文件和日志文件将存放于(\Users\(USER)\AppData\roaming\FastCopy)目录。 2.修复一些BUG。 --------------------------- 各软件介绍: ATTO Disk Benchmarks ----------------------------------------------------------------- ATTO Disk Benchmark 就是专门用来解决U盘,移动硬盘读写速度测试的绿色小软件. ATTO Disk Benchmark 是一款简单易用的磁盘传输速率检测软件,可以用来检测硬盘, U盘, 存储卡及其它可移动磁盘的读取及写入速率. 该软件使用了不同大小的数据测试包, 数据包按0.5K, 1.0K, 2.0K直到到8192.0KB进行分别读写测试, 测试完成后数据用柱状图的形式表达来. 很好的说明了文件大小比例不同对磁盘速度的影响. HD Tune Pro ----------------------------------------------------------------- 一款小巧易用的硬盘工具软件,其主要功能有硬盘传输速率检测,健康状态检测,温度检测及磁盘表面扫描等。另外,还能检测硬盘的固件版本、序列号、容量、缓存大小以及当前的Ultra DMA模式等。虽然这些功能其它软件也有,但难能可贵的是此软件把所有这些功能积于一身,而且非常小巧,速度又快,更重要的是它是免费软件,可自由使用。 FastCopy ----------------------------------------------------------------- FastCopy 是 Windows 平台上最快的文件复制、删除软件。 HD Tune Pro ----------------------------------------------------------------- 一款小巧易用的硬盘工具软件,其主要功能有硬盘传输速率检测,健康状态检测,温度检测及磁盘表面扫描等。另外,还能检测硬盘的固件版本、序列号、容量、缓存大小以及当前的Ultra DMA模式等。虽然这些功能其它软件也有,但难能可贵的是此软件把所有这些功能积于一身,而且非常小巧,速度又快,更重要的是它是免费软件,可自由使用。 ChipGenius芯片精灵 ----------------------------------------------------------------- ChipGenius是一款USB设备芯片型号检测工具,可以自动查询U盘、MP3/MP4、读卡器、移动硬盘等一切USB设备的主控芯片型号、制造商、品牌、并提供相关资料下载地址。当然也可以查询USB设备的VID/PID信息、设备名称、接口速度、序列号、设备版本等。 软件绿色小巧,即插即用,是数码消费者、电子爱好者、DIY人士和数码维修人员身边的好帮手。 ------------ 1、快速修复U盘:不用拆机即可查询U盘的芯片型号,快速找到对应的量产工具 2、帮你识
全面自动化,从设置到短信。*触发器:应用程序,时间,日期,位置,硬/软状态,事件,快捷方式,小工具,计时器,插件 *操作:200+内置,插件支持 *任务:循环,变量,条件 *场景:设计自己的屏幕叠加 *应用创建:创建自己的独立应用程序分享或售!(Android 2.3+)试用版:http ://tasker.dinglisch.net/dl 入门指南:http ://tasker.dinglisch.net/guides.html 查询,问题:请参阅菜单/信息/支持in-appIt不可能修复通过Play商店评论报告的问题... ******按类别排序****** [并非所有设备上都可用的所有操作] * ALERT:Flash,通知LED /声音/振动,取消通知,弹计时/ WithTaskIcons / Names,Torch,Vibrate,Vibrate Pattern * APP:日历插入,回家,杀死应用程序,加载应用程序,打开地图(/ StreetView / Nav) *音频:警报/呼叫/ DTMF /媒体/通知/振铃/系统音量,触觉反馈切换,麦克风静音,通知脉冲,通知(<4.1)/振铃振动(<4.2或根),静音模式,扬声器,音效切换 *对话框:28系统设置对话框 *显示:自动亮度,关闭系统对话框,键盘锁,键盘锁模​​式,显示屏亮度,显示关闭超时,显示旋转,设置壁纸,保持打开状态栏(展开/折叠) *文件:浏览文件,目录创建/删除/移动,文件复制/删除/移动/打开,写入文件,读取线,阅读段落,压缩/解压缩文件 *输入:按钮,Dpad(仅限root),类型(仅限根),输入法选择,软键盘(显示) *媒体:媒体按钮事件(抓取),媒体播放器控制,音乐文件/目录,播放/前进/后退/停止,照片/系列/时间系列,录制音频,录制音频停止,铃声,扫描卡 * MISC :(广播)动作意图,组件意图,获取位置,GPS状态(<2.3或Cyanogen / submod),运行(ASE)脚本,说,对文件,关闭,搜索,设置剪贴板,重新启动(仅限root),设置CPU( root only)设置时区 *网络:飞行模式(<4.1或root),自动同步,BT,BT ID,撰写电子邮件,浏览URL,HTTP GET,HTTP POST,移动数据(开/关),移动数据2G / 3G(仅限氰化物,USB系绳,WiFi切换,Wifi断开/重新连接/重新连接,Wifi睡眠,Wifi系绳,Wimax切换 *电话:通话,通话记录,通话阻止/转移/还原,撰写彩信/短信,通讯录,结束通话,收音机,发送短信,发送数据短信,静音铃声, 接听电话*任务:更改图标集,如果,结束如果,转到操作,执行任务,配置文件切换,查询操作,设置窗口小部件图标,设置窗口小部件标签,停止,等待,等待直到 * VARIABLES:设置,清除,公司,12月,查询,随机化,拆分,加入,列表 * 3RD PARTY:Android Notifier,Astrid,BeyondPod,JuiceDefender Data / Toggle,Gentle Alarm,NewsRob,OfficeTalk,SleepBot,SMS Backup +,TeslaLED,WidgetLocker ****** States ******飞机模式,BT连接,日历条目,停靠,耳机插入,来电,键盘输,灯光水平,媒体按钮,未接来电,移动网络,设备方向,电源,各种传感器,信号强度,未读文本,可变值,Wifi网络,Wifi近** ****事件******闹钟/完成,日期设置,时间/日期设置,时区设置,显示:关/开/解锁,文件关闭/删除/修改/移动/打开/属性更改,相机/搜索按钮长按,卡安装/卸下/未安装,手势,未接来电,电话更改,接收文本,短信发送成功/失败,电池更换/完全/低/过热,设备启动,设备关闭,存储低,区域设置改变,新增/删除/更新包,更改壁纸,单击按钮小工具,新窗口,通知,通知单击,缩放单击,可变清除/设置,K9收到电子邮件,温和警报,Kaloer时钟,OpenWatch,Reddit通知,Screebl,Widget Locker 什么是新的 添加了“通知设置”操作 Made HTTP操作返回本地%httpd变量 如果用户已选择始终拒绝权限请求,则显示一个对话框,指示用户进行设置 长按通知类别删除它,但不立即使用它 修复了Android 9设备上的Wifi Tether动作 修复了Tasker应用程序在某些情况下无法正确打开
全面的自动化,从设置到SMS。*触发器:应用程序,时间,日期,位置,硬/软状态,事件,快捷方式,小部件,计时器,插件 *操作:200多种内置功能,插件支持 *任务:循环,变量,条件 *场景:设计自己的屏幕覆盖图 *应用程序创建:创建自己的独立应用程序以共享或售!(Android 2.3以上版本)试用版:http : //tasker.dinglisch.net/dl 入门指南:http ://tasker.dinglisch.net/guides.html 查询和问题:请参阅菜单/信息/应用内支持修复通过Play商店报告的问题... ******按类别操作** [并非所有设备上都没有所有操作] *警报:闪烁,通知LED /声音/振动,取消通知,定时弹/ WithTaskIcons /名称,手电筒,振动,振动模式 * APP:日历插入,回家,杀死应用,加载应用,打开地图(/ StreetView / Nav) *音频:警报/呼叫/ DTMF /媒体/通知/铃声/系统音量,触觉反馈切换,麦克风静音,通知脉冲,通知(<4.1)/铃声振动(<4.2或root),静音模式,扬声器,声音效果切换 *对话框:28个“系统设置”对话框 *显示:自动亮度,关闭系统对话框,键盘保护,键盘保护模式,显示亮度,显示关闭超时,显示旋转,设置墙纸,保持打开状态栏(展开/折叠) *文件:浏览文件,目录创建/删除/移动,文件复制/删除/移动/打开,写入文件,读取行,读取段落,Zip /解压缩文件 *输入:按钮,Dpad(仅根),类型(仅根),输入法选择,软键盘(显示) *媒体:媒体按钮事件(抓取),媒体播放器控件,音乐文件/目录,播放/前进/后退/停止,照片/系列/时间系列,录制音频,录制音频停止,铃声,扫描卡 * MISC :(广播)动作意图,组件意图,获取位置,GPS状态(<2.3或Cyanogen / submod),运行(ASE)脚本,说,说文件,关闭,搜索,设置剪贴板,重新引导(仅root),设置CPU(仅根用户)设置时区 *网络:飞行模式(<4.1或根用户),自动同步,BT,BT ID,撰写电子邮件,浏览URL,HTTP GET,HTTP POST,移动数据(开/关),移动数据2G / 3G(仅Cyanogen),USB系绳,WiFi切换,Wifi断开/重新关联/重新连接,Wifi睡眠,Wifi系链,Wimax切换 *电话:呼叫,呼叫日志,呼叫阻止/转移/恢复,撰写MMS / SMS,联系人,结束呼叫,广播,发送SMS,发送数据SMS,静音振铃, 接听电话* TASKER:更改图标集,如果,结束如果,转到操作,执行任务,配置文件切换,查询操作,设置小部件图标,设置小部件标签,停止,等待,等到 *变量:设置,清除,公司,Dec,查询,随机化,拆分,联接,列表 * 3RD派对:Android通知程序,Astrid,BeyondPod,JuiceDefender数据/切换,温和警报,NewsRob,OfficeTalk,SleepBot,SMS Backup +,TeslaLED,WidgetLocker ******状态******飞机模式,BT已连接,日历输入,对接,插入耳机,来电,键盘输,灯光水平,媒体按钮,未接来电,移动网络,设备方向,电源,各种传感器,信号强度,未读文本,可变值,Wifi网络,Wifi附近** ****事件******闹钟/完成,日期设置,时间/日期设置,时区设置,显示:关闭/打开/解锁,文件关闭/删除/修改/移动/打开/属性已更改,相机/搜索按钮长按,已安装/已卸下/未安装卡,手势,未接电话,更改电话,接收到的文本,SMS发送成功/失败,电池已更换/满/低/过热,设备启动,设备关闭,存储空间不足,区域设置变了新建/删除/更新的软件包,更改的墙纸,单击的按钮小工具,新的窗口,通知,单击的通知,缩放单击,清除/设置的变量,接收到的K9电子邮件,柔和的警报,Kaloer Clock,OpenWatch,Reddit通知,Screebl,小部件储物柜 什么是新的 添加了“通知设置”操作 使HTTP操作返回本地%httpd变量 如果用户选择始终拒绝权限请求,则显示一个对话框,指导用户进行设置 使长按通知类别删除,但不能立即使用 修复了Android 9设备上的Wifi系绳动作 修复了Tasker应用在某些情况下无法正确打开的问题
============================ 一键封装工具标准版 ============================ 程序版本:5.0.0707 软件大小:4.30M 授权方式:绿色软件/免费软件 发布日期:2008/07/18 ============================ 最智能的封装工具,最傻瓜的操作方式,使用前请务必认真阅读说明!! ★使用说明: 使用Newprep可一键完成系统封装,界面美观、功能完善。 无需安装,即点即用,放在任何位置运行即可完成封装。 软件提供了丰富的封装及部署选项,并留有多组外部接口。 不用更改系统任何设置,Newprep可轻松完成windows封装。 您可以什么都不懂、什么都不会,Newprep为您解决一切。 ============================ ★特色功能: 使用一键封装工具,无需准备任何工具及配置,即点即用 ·独家支持冰点还原软件,封装的系统安装冰点不会报错 ·独家支持卡巴斯基6、7、8,自动关闭和启动卡巴斯基服务,避免服务冲突导致蓝屏 ·独家支持amdk8驱动及签名证书,对于AMD处理器可自动识别并安装驱动和证书 ·智能清除系统自建的OUTLOOK用户信息,完美解决OUTLOOK不能保存密码的问题 ·智能清除母机硬件信息,使本机恢复时不会现缺少驱动文件的提示。 ·自动更改组策略忽略驱动签名,并设置为不搜索WindowsUpdate ·自动清除注册表中的网卡本地连接,避免现本地连接2 ·自动清除系统内的tmp、log、sqm、gid、bak、chk、old、pnf、db等垃圾文件 ·自动清除历史记录recent、Prefetch预读文件、IconCache缓存、回收站、系统事件 ·自动清除"运行"中的记录,并隐藏驱动器及系统目录 ·封装后清除注册表历史记录(最后打开的键的位置),自动收起注册表 ·自动还原封装前的系统启动菜单等待选择时间 ·自动关闭系统失败中的三个选项为不选,并设置不写入调试信息, ·自动去掉更新个人设置窗口 ·智能清除autorun病毒,任意名称的自动运行病毒均可在安装过程种清理掉 ·可在安装后关闭系统还原服务,并提供3种关闭方式 ·可清除windows Media Player桌面图标 ·智能判断笔记本,如果不是笔记本,第一次进入桌面时自动打开小键盘 ·可复制墙纸(C:\WINDOWS\Web\Wallpaper)到[我的文档]下的[图片收藏] ·自动清理多余的桌面右键菜单,智能清除声卡显卡产生的多余启动项 ·集成自主开发的SRS驱动服务清理助手,彻底清理未使用的SRS驱动服务 ============================ ★封装功能介绍: Newprep内部集成了XP/2k/03的部署工具及配置好的自动应答文件, 如使用自备的系统部署工具,需将sysprep.exe、setupcl.exe, 及配置好的自动应答文件sysprep.ini放在C:\SYSPREP目录下。 请确保您的部署工具与当前系统匹配,否则无法进行封装。 Newprep内部集成了SATA、SCIS、RAID存储驱动及键鼠驱动, 支持大多数存储设备,支持64位架构及最新的双核处理器。 Newprep可自动更改IDE及电源,采用MCC硬件抽象HAL技术判断电源。 您无需在BIOS中禁用网卡,也不用手动清理注册表的网卡信息, Newprep可自动清除“本地连接”,避免现“本地连接2”。 封装准备过程可卸载本机所有硬件设备,包括USB键鼠, 封装后在设备管理器中看到残留的设备,如显卡及CPU等, 因为正在使用,需要重起后生效,实际上已经被清除。 封装结束将清空临时文件、Lastgood(最后一次正确的配置), Prefetch(程序缓存)等垃圾文件,保证系统轻装上阵。 欲不封装,可不选自动运行sysprep,在sysprep弹后关闭即可。 配置文件提供了移动虚拟内存及自动填写IP(固定及随机)选项, 可在封装后修改C:\sysprep\Newprep.ini中的相关字段。 ============================ ★部署功能介绍: 部署分辨率可设置为1024*768*32,画面清楚,颜色丰富。 部署后系统启动菜单时间会恢复为30秒,我们不需这么长, Newprep可记住封装前的启动菜单选择时间并在部署后还原。 扩展接口的批处理,我们可以隐藏掉它运行的黑色窗口, 使得你的系统在安装过程中看起来更美观。 部署中还将自动清除各盘根目录下的autorun自动运行病毒, V4.4版本增加了对灰鸽子runauto...的清除(可删除隐藏文件夹)。 第一次进入系统时的个人设置

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧