今天想批量改WP8的SD卡里面的所有txt文件的扩展名为txtk,为了让开卷倒入看本地小说,可我那些中二意淫傻逼起点文有300多个文件,你让我手动全改了不是爆我菊花呢。。。于是去网上找了各种软件,别说更改了,连WP设备都看不到,最后找到了Total Commands,嘿,这个能看到WP设备了,也能手动改名,然后我兴高采烈的用了里面的批量重命名,结果一脸苦逼,全部失败没一个成功。。。
然后我顶不住了,绝对要自己写了。。。
WP设备连接到PC后,是显示为移动设备,资源管理器进去后右键菜单少的可怜,只有基本的文件操作,不过好歹能改名,为了知道怎么改的,OD上阵,发现是那shell32调用wpdshext的COM接口来改的,继续跟wpdshext,就发现了其调用PortableDeviceApi来改名,继续跟进去,PortableDeviceApi使用CreateFile访问USB PNP设备ID,然后发送IO控制代码,呃,好麻烦。。。按照微软的尿性,dll文件带有api的一般都有文档,跑去SDK目录搜索h文件,果然看到了一大堆PortableDeviceXXX的头文件,跑去MSDN的Device转了一下,嘿,看到个Windows Portable Devices 。。。

那如何改名呢,看下面:
1:首先我们要创建IPortableDeviceManger接口,使用CoCreateInstance;
2:然后使用IPortableDeviceManger->GetDevices接口,返回设备总数和ID,记得ID是一个字符串数组,需要你手动调用CoTaskMemFree一个个释放掉;
3:然后创建IPortableDevice接口,还是使用CoCreateInstance,再创建一个IPortableDeviceValues,也是CoCreateInstance;
4:调用IPortableDevice->Open接口,传入步骤2获得的设备ID字符串和上面创建的IPortableDeviceValues指针;
5:Open成功后,再调用IPortableDevice->Content接口,返回一个IPortableDeviceContent接口;
6:IPortableDeviceContent成功返回后,调用IPortableDeviceContent->EnumObject,传入根ID:WPD_DEVICE_OBJECT_ID,然后返回一个IEnumPortableDeviceObjectIDs接口;
7:调用IEnumPortableDeviceObjectIDs->的Next接口,传入一个LPWSTR的数组和下标,表示要一次获得多少个对象ID字符串,再传入一个DWORD指针,返回实际获得了多少个ID字符串;
8:获得的字符串是无明的ID,给IPortableDeviceContent->EnumObject继续递归枚举用,而我们需要通过字符串ID获取真正的属性,再调用IPortableDeviceContent->Properties,返回一个IPortableDeviceProperties接口,调用IPortableDeviceProperties->GetValues,传入枚举Next接口返回的字符串ID,IPortableDeviceProperties会返回一个IPortableDeviceValues接口,这就是存储一切的东西了;
9:此时我们调用IPortableDeviceValues->GetStringValue,传入WPD_OBJECT_NAME,会返回显示名称,更改就使用IPortableDeviceValue->SetStringValue,然后用IPortableDeviceProperties->SetValues设置这个IPortableDeviceValues过去,就行了,比如改名就用WPD_OBJECT_ORIGINAL_FILE_NAME。

还有很多地方要注意,比如字符串都需要自己手动释放,比如要枚举文件夹子文件夹,更改文件夹内的名称需要扯到很多ID和属性,自己看MSDN吧,这神奇的改名方式。。。

使用程序更改链接到PC中的Windows Phone设备的文件目录名相关推荐

  1. Edge浏览器复制链接到PC微信变成文字标题了

    Edge浏览器复制链接到PC微信变成文字标题了 这几天使用Edge浏览器复制链接到PC微信,但奇怪的是粘贴在微信显示的是文字,不是链接. 后来又试了谷歌浏览器,发现是正常的. 原来是Edge浏览器的粘 ...

  2. 如何链接到Multimarkdown中的命名锚点?

    本文翻译自:How to link to a named anchor in Multimarkdown? I have come across a number of mentions of Mul ...

  3. 已处理证书链,但是在不受信任提供程序信任的根证书中终止-Windows 7安装.Net Framework 4.6.2

    在全新安装 Windows 7 SP1 后,通过离线包安装 .Net Framework 4.6.2时,遇到错误提示:已处理证书链,但是在不受信任提供程序信任的根证书中终止. 原因是计算机中没有相应的 ...

  4. pycharm中提示windows找不到文件‘chrome’

    pycharm中,使用浏览器打开.html文件,提示如下:windows找不到文件'chrome' 原因:pycharm中未设置chrome的路径,找不到路径导致. 解决方法–以谷歌为例: 1.找到谷 ...

  5. arm linux 加载.a,如何将libc.a链接到arm-linux中的共享库中使用arm-none-linux-gnueabi-gcc...

    在一个项目中,我的同事创建了一个静态库,例如liba.a,它与app链接. 在liba.a中,他将libc malloc()覆盖为其所有者版本. 我创建了一个共享库libs.so,它也与app链接. ...

  6. Codejock Xtreme ToolkitPro学习笔记(1):静态链接到XTP库

    XTP库的静态链接分为2种 1)程序动态链接到MFC库情况下,静态链接到XTP 2)程序动态静态到MFC库情况下,静态链接到XTP 不论哪种情况,配置_XTP_STATICLINK都可以使能静态链接 ...

  7. 在提交消息中链接到GitHub上的问题编号

    是否有可能在git commit消息中自动获得指向GitHub问题编号的链接? #1楼 您还可以交叉引用回购: githubuser/repository#xxx xxx是问题编号 #2楼 他们在他们 ...

  8. 将html连接到外部样式表文件,外部样式表文件通过( )标记链接到HTML文件中

    外部样式表文件通过( )标记链接到HTML文件中 更多相关问题 家长在婴儿(),时期开始训练婴儿自己刷牙为宜.A.半岁左右B.10岁左右C.3岁左右D.1岁半左右 在()中,汪家以汪文宣的死亡,婆婆带 ...

  9. Word控件Spire.Doc 【超链接】教程(8):在 C#/VB.NET 中链接到 Word 文档中的书签

    Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Micr ...

最新文章

  1. Opencv-python 图像处理基础知识
  2. 渗透各行各业,这家RPA外企宣布全面进军中国市场
  3. java 非递归求二叉树高度_非递归算法实现二叉树高度
  4. php 字符串函数 教程_PHP 字符串获取 substr 与 strstr 函数
  5. 用matlab录制声音然后进行读取和播放
  6. Hadoop学习总结(3)——Hadoop伪分布式环境搭建
  7. 无限极分类php简单,创建无限极分类树型结构的简单方法
  8. Flink的容错机制
  9. python二进制文件读写文件_Python二进制文件读写
  10. 解决wordpress用户注册时,点击邮件中的重置密码链接提示“您的密码重设链接无效”
  11. vos3000_v7.x版本的快速安装方法
  12. 双系统删除ubuntu后进入gun grub version 2.04的解决办法
  13. 产品必备-产品FDD模板(PRD)
  14. Xcode ImageOptim Compress PNG Files
  15. 解决eclipse桌面快捷方式打不开的问题
  16. Codepen 每日精选(2018-3-26)
  17. 《计算机软件著作权》申请注意事项
  18. 大屏制作 | 完成一个美观大屏到底多简单?四步完成
  19. ardupilot GPS代码分析
  20. node14 升级 node16 后 vue2 项目中 sass 报错问题

热门文章

  1. 使用python将中文与Unicode编码相互转换
  2. 微信支付v3平台证书
  3. 墨羽卿画第二章第6节:修行路,修心途
  4. cocoscreator游戏开发实战——动物餐厅——菜单代码编写(1)
  5. c语言浮点数数除法,浮点数除法
  6. 复制粘贴-快速安装k8s教程
  7. 次氯酸盐溶液增稠剂对稠度的执著已成癖,但似乎并没有坏处
  8. Android项目开发实战之绘图
  9. 曾为你泪水狂流 曾为你万事都低头
  10. 多款Android播放器源码集锦