Ich versuche, das Symbol einer Verknüpfung auf einen Ordner zeigen, aber keine Ressourcen zum Festlegen eines Verknüpfungssymbols auf ein systemeigenes Symbol von shell32.dll finden. Ich habe This Antwort auf msdn von Rykler gefunden, aber die Antwort ist veraltet. Jede Hilfe wäre willkommen.Verwenden Sie das Symbol von shell32.dll als Verknüpfungssymbol
-Code
SHFILEINFO shinfo = new SHFILEINFO();
Win32.SHGetFileInfo(filename, 0, ref shinfo, (uint)Marshal.SizeOf(shinfo), (int)0x1000);
// icon index # and path
int IconIndex = shinfo.iIcon
string IconPath = shinfo.szDisplayName
shortcut.IconLocation = ???
SHFILEINFO struct: (Entnommen aus This Frage)
[StructLayout(LayoutKind.Sequential)]
public struct SHFILEINFO
{
public IntPtr hIcon;
public int iIcon;
public uint dwAttributes;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string szDisplayName;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
public string szTypeName;
};
class Win32
{
[DllImport("shell32.dll")]
public static extern IntPtr SHGetFileInfo(string pszPath, uint
dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);
}
„aber Visual Studio wirft ein Fehler“ Jedes Mal, wenn Sie eine Fehlermeldung haben, ist es eine gute Idee, es als Teil Ihrer Frage zu teilen. – itsme86
Keine Überladung für die Methode 'ExpandEnvironmentStrings' benötigt 2 Argumente. Ich denke, dass die Antwort, die ich mir angesehen habe, überholt ist. –
'ExpandEnvironmentStrings' wird nicht in Ihrem Code angezeigt. Wie kann das im Fehler enthalten sein? – NetMage