VB - Icon überschreiben

Hallo allerseits,

ich möchte mit einem VB-Programm ein Icon in einem anderen VB-Programm austauschen, krieg´s aber irgendwie nicht hin. Poste einfach mal den Code, vielleicht ist jemand von Euch schlauer als ich.

Irgendwie macht er das, was ich ihm sage (soll heissen, er findet das alte ICO in der EXE und brät das neue rein), aber leider sehe ich hinterher im Explorer immer noch das alte Icon, wenn ich mir die EXE anschaue.

Danke
Uni

Public Function File_ReplaceIcon(sFile$, sOrgIconFile$, sNewIconFile$) As Boolean
On Error GoTo File_ReplaceIcon_Err
Dim iFile%
Dim lPos&
Dim sIcoOrg$, sIcoNew$, sFileData$

'altes Icon lesen
iFile = FreeFile
sIcoOrg = Space(FileLen(sOrgIconFile))
Open sOrgIconFile For Binary As #iFile
Get #iFile, 1, sIcoOrg
Close iFile

'Byte-Position suchen
iFile = FreeFile
sFileData = Space(FileLen(sFile))
Open sFile For Binary As #iFile
Get #iFile, 1, sFileData
Close iFile

lPos = InStr(1, sFileData, sIcoOrg)
If lPos > 0 Then
'neues Icon lesen
iFile = FreeFile
sIcoNew = Space(FileLen(sNewIconFile))
Open sNewIconFile For Binary As #iFile
Get #iFile, 1, sIcoNew
Close iFile

'austauschen
If Len(sIcoNew) > 0 Then
iFile = FreeFile
Open sFile For Binary As #iFile
Put #iFile, lPos, sIcoNew
Close #iFile
File_ReplaceIcon = True
End If
End If

File_ReplaceIcon_Exit:
Exit Function

File_ReplaceIcon_Err:
MsgBox Err.Description, vbCritical
End Function

Hi Andreas,
kann Dir da nicht wirklich weiterhelfen - möglicherweise aber einen Tipp geben:

Meist werden 2 Icons hineingespeichert. Eines 32x32 und eines 16x16. Vielleicht tauscht Du nur das 32x32 Icon aus, sodaß Du die Änderung in der Detail-Ansicht vom Explorer nicht siehst.

Schallte mal auf „Große Icons“ um bzw. schau Dir die „Eigenschaften“ von der Datei an - dort werden nämlich die 32x32 Icons angezeigt.

Vielleicht hilfts!
greets from MichL (Vienna)