Windows 8 Win8:像OblyTile和Modern Tile Maker这样的程序如何将Tile分配给非Metro应用程序Shorcut?

Windows 8 Win8:像OblyTile和Modern Tile Maker这样的程序如何将Tile分配给非Metro应用程序Shorcut?,windows-8,live-tile,Windows 8,Live Tile,我们有一个.NET但不是Metro的应用程序,内置于VisualStudio2010。我们希望在桌面上为我们的应用程序显示一个漂亮的512x512(或其他)图像。我们不需要实时互动功能,我们只需要一个快捷方式,显示一个不错的地铁尺寸的图像。这些程序可以做到这一点,尽管还不清楚如何做到。他们是否通过编程方式创建LNK快捷方式?或者他们实际上是自己的快捷方式(Metro应用程序),然后启动您的旧应用程序 如果是前者,那么显然可以为非Win8应用程序创建Metro尺寸的桌面图标0,则 其他的 如果ob

我们有一个.NET但不是Metro的应用程序,内置于VisualStudio2010。我们希望在桌面上为我们的应用程序显示一个漂亮的512x512(或其他)图像。我们不需要实时互动功能,我们只需要一个快捷方式,显示一个不错的地铁尺寸的图像。这些程序可以做到这一点,尽管还不清楚如何做到。他们是否通过编程方式创建LNK快捷方式?或者他们实际上是自己的快捷方式(Metro应用程序),然后启动您的旧应用程序


如果是前者,那么显然可以为非Win8应用程序创建Metro尺寸的桌面图标<我们如何编写这样一个快捷方式?<强>我们不关心我们需要使用哪种语言(JScript,C++,C,等等),只需要指出正确的方向。我们使用WiX,因此在安装脚本方面有很大的灵活性。

这里有一些事情:

1) 您可以通过下载ILSpy查看OblyApp的源代码:

2) OblyApp创建一个运行VBS文件(Launcher.VBS)的互动程序,该文件启动指定的应用程序。OblyApp为每个磁贴创建一个新的唯一launcher.vbs文件,并将其创建的每个磁贴的图像保存在
c:\Program Files\OblyTile\
下。vbs文件的文本:

出错时继续下一步
设置objShell=CreateObject(“Wscript.Shell”)
设置objFSO=CreateObject(“Scripting.FileSystemObject”)
Strap=“”
arrPath=Split(带“\”)
对于i=0到Ubound(arrPath)-1
STRAPPATH=STRAPPATH和arrPath(i)和“\”
下一个
objShell.CurrentDirectory=路径
objShell.Run“”和“”
如果错误号为0,则
如果仪表(1,带“/”)大于0,则
其他的
如果InStr(1,带“,”www.”)大于0,则
其他的
如果仪表(1,带,外壳:)>0,则
其他的
如果objFSO.folderExists(Strap),则
其他的
如果存在objFSO.files(Strap),则
其他的
MsgBox捆扎带&“未找到”,16,“明显”
如果结束
如果结束
如果结束
如果结束
如果结束
呃,明白了
如果结束
3) 我相信他们正在复制一个现有的.lnk文件,并以二进制形式更改其相关信息。相关代码位于CreaRisorce()和CreateShortcutWinAppClick()方法中。这里有.lnk文件的正式文件格式:

我不久前对此进行了研究,他们似乎直接在lnk文件中更改图标和快捷方式。我认为他们使用了IE中的快捷方式。你可以尝试在十六进制编辑器中打开一个修改过的lnk文件,并尝试找出他们更改了什么。似乎没有通过API或其他东西的正式方式。查看OblyTile的链接,很明显他们是通过编程方式创建LNK文件的。此外,metro应用程序无法启动旧版应用程序,所以二次平铺方法已过时。@Denis我认为他们是通过编程方式创建LNK的。很想知道如何才能为我们的设置做一个。奇怪的是,他们没有提供对许多遗留应用程序的支持,在桌面上看起来不错,而没有被重写为Metro:)OblyTile支持命令行模式。因此,您可以将其与应用程序安装程序一起分发,并在安装过程中调用它来创建“开始屏幕”互动程序。MS应该在几年前将.lnk更改为XML格式。谢谢Matt。事实上,我已经查看了源代码,并看到了其中的一些(但不是全部):)考虑到赏金的目的,有几个问题:(A)他们如何创建瓷砖?我可以看到图像等,但是。。。在何处以及如何创建并链接到这些图像和标题?(b)我确实看到了克里亚雷斯力量的作用,但是破译它。。。啊。你能包含一些实际操作链接的代码吗?他们是在使用IShellLink,还是在用二进制(你这么说)编写它?如果是的话,是哪些部分?我下周必须这样做,一小时后去度假。:-)希望赏金还在,别担心;悬赏有效期为6天,但如果没有其他人回答,我会奖励给你,如果你还在度假,而且还没有添加,因为你回来后会写些什么;)赏金结束了,所以我把它奖励给你。如果你能再扩展一下(谢谢!),那就太好了。同时,享受剩下的假期吧。我刚度假回来,我会看看这周我还能挖掘到什么。