2013-03-29 26 views
6

我們有一個.NET但非Metro應用程序,內置Visual Studio 2010.我們希望在桌面上爲我們的應用程序顯示一個漂亮的512x512(或其他)圖像。 我們不需要Live Tile功能,我們只需要一個快捷方式,顯示一個不錯的Metro尺寸圖像。程序OblyTileModern Tile Maker可以做到這一點,但目前尚不清楚如何。他們是否以編程方式創建LNK快捷方式?或者他們實際上是自己的快捷方式(Metro應用程序),然後啓動您的傳統應用程序?Win8:OblyTile和Modern Tile Maker等程序如何將圖塊分配到非Metro應用快捷方式?

如果是前者,那麼顯然可以爲非Win8應用程序創建Metro尺寸的桌面圖標。 我們如何編寫這種快捷方式?我們不關心我們需要使用哪種語言(JScript,C++,C#,無論),只需要指向正確的方向即可。我們使用WiX,所以我們在安裝腳本方面有很大的靈活性。

+0

我前面研究過它們,它們似乎直接在lnk文件本身中更改圖標和快捷方式。我認爲他們使用了IE的捷徑。你可以嘗試在十六進制編輯器中打開一個已修改的lnk文件,並試圖找出他們改變了什麼。似乎沒有通過API或其他東西的官方方式。 – Lennart

+0

查看OblyTile的鏈接,它看起來非常清楚,他們以編程方式創建LNK文件。此外,metro應用程序無法啓動舊版應用程序,因此二次平鋪方法已停用。 – Denis

+0

@Denis我想他們正在編程創建一個LNK。很想知道我們如何爲我們的設置做一個。好奇他們沒有提供許多遺留應用程序的支持,在桌面上看起來不錯,而不會被重寫爲Metro :) –

回答

3

有幾件事會在這裏:

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 

3)我相信他們是複製現有.lnk文件,並改變以二進制其相關的信息。與此相關的代碼位於CreaRisorce()和CreateShortcutWinAppClick()方法中。這裏有一個.lnk文件的官方文件格式: http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MS-SHLLINK].pdf

+0

謝謝馬特。我實際上已經看過源頭,看到了一些(但不是全部)這些東西:)考慮到賞金的目的,有幾個問題:(a)*他們如何創建瓷磚?我可以看到圖像等,但是......在哪裏以及如何創建並鏈接到這些圖像和標題? (b)我確實看到了CreaRisorce的功能,但解密了它......唉。你能否包含一些實際操縱鏈接的代碼?他們是使用IShellLink,還是用二進制編寫(你這樣說),如果是的話,哪些部分? –

+1

我將不得不在下週做這個,在一個小時內去度假。 :-)希望賞金仍在這裏。 –

+0

不用擔心;賞金開放6天,但如果沒有其他人回答,如果你還在度假,並且還沒有添加,那麼在你回來時你會寫什麼,我會給你獎勵 –

相關問題