Sys*_*Lol 6 windows-8 live-tile
我们有一个.NET但非Metro应用程序,内置在Visual Studio 2010中.我们希望在桌面上为我们的应用程序显示一个漂亮的512x512(或其他)图像.我们不需要Live Tile功能,我们只需要一个显示一个漂亮的Metro尺寸图像的快捷方式.该方案OblyTile和现代瓷砖制造商可以做到这一点,尽管目前尚不清楚.他们是以编程方式创建LNK快捷方式吗?或者它们实际上是自己的快捷方式(Metro应用程序),然后启动您的旧应用程序?
如果它是前者,那么显然可以为非Win8应用程序创建Metro尺寸的桌面图标.我们如何编写这样一条捷径的创作脚本?我们不关心我们需要使用哪种语言(JScript,C++,C#,等等),只需要指向正确的方向.我们使用WiX,因此我们在安装脚本方面具有很大的灵活性.
这里发生了一些事情:
1)您可以通过下载ILSpy查看OblyApp的源代码: http ://ilspy.net/
2) OblyApp 创建一个运行 VBS 文件 (Launcher.vbs) 的图块,该文件启动指定的应用程序。OblyApp 为每个图块创建一个新的唯一的 launcher.vbs 文件,并为其在 下创建的每个图块保存图像c:\Program Files\OblyTile\<Folder like 00000001>。vbs文件的文本:
On Error Resume Next
Set objShell = CreateObject("Wscript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
strApp = "<path to executable>"
arrPath = Split(strApp, "\")
For i = 0 to Ubound(arrPath) - 1
strAppPath = strAppPath & arrPath(i) & "\"
Next
objShell.CurrentDirectory = strAppPath
objShell.Run """<path to executable>""" & ""
If Err.Number <> 0 Then
If InStr(1, strApp, "/") > 0 then
Else
If InStr(1, strApp, "www.") > 0 then
Else
If InStr(1, strApp, "shell:") > 0 then
Else
If objFSO.folderExists(strApp) Then
Else
If objFSO.FileExists(strApp) Then
Else
MsgBox strApp & " not found", 16, "OblyTile"
End If
End If
End If
End If
End If
Err.Clear
End If
Run Code Online (Sandbox Code Playgroud)
3)我相信他们正在复制现有的.lnk 文件并以二进制方式更改其相关信息。相关代码位于 CreaRisorce() 和 CreateShortcutWinAppClick() 方法中。这里有 .lnk 文件的官方文件格式: http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/ [MS-SHLLINK].pdf
| 归档时间: |
|
| 查看次数: |
2622 次 |
| 最近记录: |