我将尝试以更舒适而不依赖用户的方式编辑Windows 8.1 StartScreen。
我知道这不是Microsoft使用他们的操作系统的方式,但是在企业环境中,必须有一种方法来定制StartScreen。 Fe如果我部署了一个新的软件包,StartScreen上应该有图标(在正确的组中,在预定义的位置上)。
所以,我发现文件appsFolder.itemdata-ms
和appsFolder.itemdata-ms.bak
都是二进制编码的。 如果我在hex编辑器中打开它们,有几个组名和链接可见,但不是转储格式。 也没有办法在需要的方式编辑hexeditor这个瓷砖。
部分appsFolder.itemdata-ms
?%?????☺↔ ▼ ♠ S tore Y+↨♣♦?BGJ F 1SPS?w?
我试图编写一个解码器(使用C#),没有成功,一切都可以查看,但只是像在hex编辑器。
尝试了PowerShell命令Export-StartLayout -as xml
一切都以正确的方式,组,瓦片,位置导出到:
export.xml
<launcher version="2"> <view name="Start"> <group name="Desktop"> <tile FencePost="0" size="wide310x150" AppID="Microsoft.Windows.Desktop"/> <tile FencePost="0" size="square150x150" AppID="Microsoft.InternetExplorer.Default"/> <tile FencePost="0" size="square150x150" AppID="Chrome"/> </group> <group name="Entwicklung"> <tile FencePost="0" size="square150x150" AppID="{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\Fiddler2\Fiddler.exe"/> <tile FencePost="0" size="square150x150" AppID="{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\Notepad++\notepad++.exe"/> </group> </view> </launcher>
但是Import-StartLayout
不能按预期工作,用这个命令先前导出的布局不能应用到当前用户(只有使用gpo,但是然后启animation面被locking)。
我还使用ILSpy来检查PowerShell Cmt-Lets,但是这以非托pipe代码部分结束。
长话短说, 有没有办法解码二进制文件来编辑它们(也许是第三方工具?)并写回来将修改应用到当前用户?
不,这是不可能的,这是通过设计(不是我同意这种设计选择)。 我曾与Windows产品组讨论过这个问题。
这与微软锁定任务栏的方式类似。 看到这里 :
“ 注意:应用程序无法以编程方式将自己固定到任务栏,该功能仅限用户使用。”
或者:
我也在寻找编辑开始屏幕数据文件的方法。 我已经通过GPO工作,并使用.Net Reflector来分析Export-StartLayout cmdlet。 它通过在windows \ system32 \ twinapi.dll中定义的COM接口调用一个方法来工作,所以解码数据文件格式并不容易。
xml文件包含在注册表中定义的APP ID,可以通过PS get-startapps cmdlet列出,因此可以为此创建编辑器。
我与学校和大学合作,所以控制桌面的要求很高。 目前,我所处理的大多数学校都是远离Windows 8的,因为这样的问题。 似乎MS只是不听人真正需要的东西!
确保以二进制格式导出配置文件,因为Import-StartLayout不会导入XML文件。 这里是导出命令:
Export-StartLayout -As BIN -Path CustomStartScreenLayout.bin -Verbose