kolyaL
@kolyaL

Как программно сменить значок любого элемента в Windows?

Как программно, при помощи кода C# сменить значок любого элемента (папка, ярлык и т.п.) в Windows?
Как изменить путь для DLL файла, который содержит значки?

5b40fe1301066125236953.png
  • Вопрос задан
  • 427 просмотров
Решения вопроса 1
mindtester
@mindtester Куратор тега Windows
http://iczin.su/hexagram_48
не ответ на ваш вопрс в точности.. но фрагмент кода, формирующего типичный ярлык (на файрефокс)

static void buildLinks(this IEnumerable<string> profiles, string bro)
        {
            try
            {
                dynamic sh = Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("72C24DD5-D70A-438B-8A42-98424B88AFB8")));
                var successCount = 0;
                foreach (var p in profiles)
                {
                    var pl = p.Split(backSlashDelimiter, StringSplitOptions.RemoveEmptyEntries);
                    var pnPoint = pl.Length - 2;
                    var profileName = pl[pnPoint];

                    var profileLocation = new StringBuilder()
                        .Append("%APPDATA%").Append(backSlash)
                        .Append(pl[pnPoint - 3]).Append(backSlash)
                        .Append(pl[pnPoint - 2]).Append(backSlash)
                        .Append(pl[pnPoint - 1]).Append(backSlash)
                        .ToString();

                    try
                    {
                        dynamic lnk = sh.CreateShortcut(linkLocation + profileName + ".lnk");
                        lnk.TargetPath = bro;
                        lnk.Arguments = ffOptions + " " + profileLocation + profileName;
                        lnk.WorkingDirectory = profileLocation;
                        lnk.IconLocation = iconLocation + iconName + ", " + iconIndex;
                        lnk.Description = "created by ff.links on C#";
                        lnk.Save();
                        " .. created link for profile ".print(pfx, profileName);
                        successCount++;
                    }
                    catch (Exception e) { $"FAIL create link for profile {profileName} - {e.Message}".print(pfx); }
                }
                $"total created links {successCount}".print(pfx);
            }
            catch (Exception e) { $"FAIL 'build links' - {e.Message}".print(pfx); }
        }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы