The SDX "wrap" command supports generating Win32 starpacks which have a custom icon for the executable.
You need a windows icon with the following resolutions:
16x16, 4-bit (16-color)
16x16, 8-bit (256-color)
32x32, 4-bit (16-color)
32x32, 8-bit (256-color)
48x48, 4-bit (16-color)
48x48, 8-bit (256-color)
Put that icon into the file myapp.vfs/tclkit.ico (where “myapp” is the name of your Starkit), and then generate a Starpack as usual:
$ sdx wrap hello.exe \ -runtime tclkit-win32.exe
SDX wrap will see the "tclkit.ico" file at the root level of the starkit (it gets included in VFS, like everything else), and if the runtime is a Win32 executable will replace the ICO resource of the generated Starpack.
You need all of the above six resolutions in your icon if you want to be certain that it gets displayed. If you don't include them, the Tk icon will be displayed instead.
Note that this works cross-platform - SDX can customize icons for while wrapping on any platform.