ショートカットのアイコンをフォルダに設定しようとしていますが、ショートカットアイコンをshell32.dllのネイティブアイコンに設定する方法に関するリソースが見つかりません。私はThisがRyklerによってmsdnで答えを見つけましたが、答えは古くなっています。どんな助けもありがとう。ショートカットアイコンとしてshell32.dllのアイコンを使用
コード
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構造体:(This質問から撮影)
[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);
}
を使用すると、エラーメッセージを持っていつでも、それはあなたの質問の一部としてそれを共有することをお勧めします「が、Visual Studioは、エラーがスローされます」。 – itsme86
メソッドのオーバーロードがありません 'ExpandEnvironmentStrings'は2つの引数をとります。私が見ていた答えは時代遅れだと思います。 –
'ExpandEnvironmentStrings'があなたのコードに表示されないので、どうしたらエラーになるのですか? – NetMage