- 积分
- 52
- 最后登录
- 2022-10-31
- 精华
- 0
- 阅读权限
- 20
- 主题
- 28
- UID
- 230066
- 帖子
- 130
- PB币
- 2718
- 威望
- 0
- 贡献
- 0
- 技术
- 1
- 活跃
- 80
- UID
- 230066
- 帖子
- 130
- PB币
- 2718
- 贡献
- 0
- 技术
- 1
- 活跃
- 80
|
发表于 2012-11-14 16:28:21
IP属地辽宁
|显示全部楼层
本帖最后由 scskarsper 于 2012-11-14 18:21 编辑
今天拿C#写的一个小的外壳。
ModernUI上的App不少,但是我们用一段时间之后就会开始越来越占用C盘。360什么的管理器目前为止没发现能进行App清理的玩意儿(And也许我没发现)
有时候卸载不全的应用会无法重装,需要到PowerShell下进行操作,那串长长的PackageFullName相当的烦人- -
于是咱自己DIY了这个外壳程序:
具体功能如下:
1.利用程序调用Get-AppxPackage指令获取当前安装的所有用用列表,并且显示为正常
2.能识别由应用商店管理的自动升级Appx(注意,这个的特征是InstallLocation属性和保存地址不同,所以处理方式也不同,但是应用基本上都是这种模式的,所以标记为“自升级”)
3.在Apps文件夹进行全文件夹检索(如果你改过Apps文件夹的地址,可能会报错),然后把所有保存在磁盘上的Apps列出来并且跟已经安装并正在使用的Apps对应好,没有被使用和安装,或者已经卸载的Apps会被标记为残留。4.由应用商店自动升级后的残余Apps旧版本文件会被标示成旧版本。
5.VCLibs和WinJS会被标示成建议不删除以提醒(推荐设置中也排除了),因为在测试的时候我也不知道会不会有老旧的程序引用它,毕竟是Runtimer。
这是Alpha版本,也就是说只是正常的实现功能,界面异步优化什么的都没有做。框架倒是做了,所以在设计大规模数据操作的时候界面会有点卡- -
C#处理所有权的问题还是不会解决,所以是内部调用TakeOwn指令完成的。
各个模块工作流程如下:
卸载:根据前面Get-AppxPackage指令获取结果,运行Remove-AppxPackage指令卸载应用。
删除:首先遍历要删除的Apps的文件夹下所有文件,然后TakeOwn,接着修改Administrators的权限为Full,最后执行删除操作。
根据分析和观察,虽然理论上讲微软应该会设置一个自动清理的阀门,但是不知道是多大。所有的Apps版本升级后旧版本都会保留下来,应用商店下载到一半的任务也会存在Apps文件夹里,所以C盘会变得越来越小的说~~
请勿使用多线程下载工具下载论坛附件!
Windows8ModernAppsCleaner - new.rar
(9.52 KB, 下载次数: 33)
Windows8ModernAppsCleaner - new 2.rar
(9.53 KB, 下载次数: 153)
《--- 晚上改了一个小BUG,删除的时候获取权限的速度提升了一点儿,没太大影响,没下的童鞋下新的吧
补充内容 (2012-11-17 22:26):
2012.11.17 22:20 最新N9版本发布
http://pan.baidu.com/share/link?shareid=130471&uk=2701377884
补充内容 (2012-12-3 20:09):
最新版本是:
https://bbs.pcbeta.com/viewthread-1199837-1-1.html
2012-11-30更新- - |
|