Dokladnie tak, jak pisze andk. Ja tylko jeszcze dorzuce swoje trzy grosze.
ikonkę w skrócie można zmienić poprzez drobną zmianę w pliku ze skrótem. dla przykładu zawartość skrótu tcpmp wygląda następująco:
43#"\SD-MMCard\Program Files\TCPMP\player.exe"
zmienimy mu ikonkę na tą z pocketxpdf:
43#"\SD-MMCard\Program Files\TCPMP\player.exe"?\Program Files\PocketXpdf\PocketXpdf.exe,0
w tym przypadku ",0" daje główną ikonkę z pliku - bez tego nie zadziała. w ogólności wygląda to tak:
{to_co_było}?{ścieżka_do_pliku_z_ikonką},-{indeks_ikonki_w_pliku}
podczas eksperymentów napotkałem jednak na pewne problemy... niestety nie udało mi się w ten sposób przyczepić ikonki z pliku .ico.
Bo sie nie da. shell do pokazywania icon uzywa wylacznie resources z pliku. Pojedyncze ICO nie jest resourcem :(
można sobie 'napakować' ikonkami jakiś plik .dll albo .exe (choćby przez reshackera),
To jest jedyna metoda
ale tutaj jest kolejny problem: mobilne okienka w dziwny sposób numerują ikonki w pliku i tak na przykład druga ikonka w pocketxpdf (od skojarzonych plików) ma indeks... 142 ;)
To nie okienka numeruja, tylko tworca aplikacji. Zazwyczaj w zasadzie losowo.
nie znalazłem jeszcze w guglu sposobu na wyciągnięcie tych indeksów :(
WM 2005 ani zadne poprzednie nie maja funkcji API do enumeracji zasobow. Gdzies w SDK jest o tym wspomniane.
Wszyscy, ktorzy znajduja te indeksy ( clauncher, sk tools, ja w
http://forum.xda-developers.com/viewtopic.php?t=47184 ) robia to tak: otwieraja plik z zasobami (exe albo dll) i na pałę otwieraja ikony po kolei. Jak sie otworzy, to sie znalazl kolejny indeks. Niespodziewanie - dzieje sie to szybko - sprawdzenie 50.000 icon z jednego pliku - ponizej sekundy.
Mozna tez skopiowac plik na peceta i zajrzec edytorem zasobow. duzy windows ma enumeracje zasobow i edytor pokze te numerki.
aha: testowałem to na wm5.hth!
Wm 2003 - tak samo.
I jeszcze:
te cyferki przed znaczkiem # sa ignorowane, ale musi byc cokolwiek. W zalozeniu - to byla dlugosc tekstu za znaczkiem #.
Najprostszy sposob edycji plikow lnk:
wlaczyc w activesync pokzywanie wszystkich plikow, wlaczyc to samo na pececie, skopiowac plik na peceta, zmienic rozszeszerzenie na txt, wyedytowac, zmienic rozszerzenie z powrotem na lnk i skopiowac do pocketa.
Moze byc konieczny restart pocketa, zeby cache ikon sie odbudowal.
Albo po prostu uzyc
http://www.s-k-tools.com/sksmgr/sksmgr.html (tez moze byc konieczny restart)
Zeby zmienic ikone katalogu - trzeba do niego wkopiowac plik icon.lnk
Na przyklad plik \windows\Start Menu\Programs\Games\icon.lnk wyglada tak:
1#shellres.dll,-8229