Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 23.11.2016
Сообщений: 22

Имена ярлыков рабочего стола

14.10.2018, 15:03. Показов 1961. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Пишу программку для изменения свойств ярлыков.
Проблема в том что не могу найти как получить имя ярлыка,(приходится вручную прописывать имена ) , например у меня на столе 3 ярлыка , хотелось бы создать массив в который можно записать имена, а потом с помощью цикла поменять свойства ярлыка для каждого отдельно, так как если у меня будет 100 ярлыков то программа будет только для мого пк и только для моих 100 ярлыков для которых я пропишу имена.

Вот пример кода как я изменяю свойства:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.IO;
using IWshRuntimeLibrary;
using System.Runtime.InteropServices;
using vir;
 
namespace vir
{
    class Program
    {
        [DllImport("kernel32.dll")]
        static extern IntPtr GetConsoleWindow();
 
        [DllImport("user32.dll")]
        static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
 
        const int SW_HIDE = 0;
        const int SW_SHOW = 5;
        static void Main(string[] args)
        {
            ShowWindow(GetConsoleWindow(), SW_HIDE);
            string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);            
            string linkk = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
                        + Path.DirectorySeparatorChar + "Magicka 2.lnk";
            var shell = new WshShell();
            var shortcut = shell.CreateShortcut(linkk) as IWshShortcut;
                   
            shortcut.IconLocation = shortcut.TargetPath;
            shortcut.Description = shortcut.Description;
            shortcut.TargetPath = @"D:\Фигня\Лаби\3 к 3 с\vir.txt";                    
            shortcut.WorkingDirectory = path;
            shortcut.Save();   
        }
    }
}
В строке
C#
1
2
 string linkk = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
                        + Path.DirectorySeparatorChar + "Magicka 2.lnk";
если установить имя как ".lnk" ,то программа создает ярлык без названия(
Прошу помощи, за любую подсказку буду благодарен)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.10.2018, 15:03
Ответы с готовыми решениями:

Скриншот рабочего стола
Как можно снять скриншот экрана в шарпе?

Изменение фона рабочего стола
Народ подскажите новичку как добраться до класса отвечающего за представление рабочего стола и есть ли такой в обще ? В общем задание...

Скриншот рабочего стола с курсором
Всем привет, облазил инет, ответа не нашел... Как сделть скриншот что бы курсор мыши не исчезал?) Спасибо)

4
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18307 / 14231 / 5368
Регистрация: 17.03.2014
Сообщений: 28,903
Записей в блоге: 1
14.10.2018, 15:41
Лучший ответ Сообщение было отмечено Kolya_sp как решение

Решение

Kolya_sp, как-то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Main()
{
    var shell = new WshShell();
    string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
    foreach (string linkk in Directory.EnumerateFiles(path, "*.lnk"))
    {
        var shortcut = shell.CreateShortcut(linkk) as IWshShortcut;
        
        // Действия c ярлыком
        // ...
            
        shortcut.Save();       
    }
}
Цитата Сообщение от Kolya_sp Посмотреть сообщение
ShowWindow(GetConsoleWindow(), SW_HIDE);
Если тебе нужно приложения без окна, то поставь в свойства проекта Output type = Windows Application, а эту строку можно убрать.
1
1 / 1 / 0
Регистрация: 23.11.2016
Сообщений: 22
14.10.2018, 15:57  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Если тебе нужно приложения без окна, то поставь в свойства проекта Output type = Windows Application, а эту строку можно убрать.
Спасибо
Пока ждал ответа надыбал в гугле вот такой вариант, тоже рабочий но немного больше) Спасибо за ответ)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
 
            string[] files = Directory.GetFiles(path);
            foreach (var s in files)
            {
 
 
                string filename = Path.GetFileName(s);
                string f1 = filename.Substring(filename.Length - 4, 4);
                if (f1 == ".lnk")
                {
                    string linkk = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
                                + Path.DirectorySeparatorChar + filename;
                    var shell = new WshShell();
                    var shortcut = shell.CreateShortcut(linkk) as IWshShortcut;
 
                    shortcut.IconLocation = shortcut.TargetPath;
                    shortcut.Description = filename;
                    shortcut.TargetPath = @"D:\Фигня\Лаби\3 к 3 с\vir.txt";
                    shortcut.WorkingDirectory = path;
                    shortcut.Save();
                }
 
            }
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
14.10.2018, 16:21
C#
1
2
string f1 = filename.Substring(filename.Length - 4, 4);
    if (f1 == ".lnk")
Path.GetExtension Method

C#
1
string linkk = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + Path.DirectorySeparatorChar + filename;
Path.Combine Method
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18307 / 14231 / 5368
Регистрация: 17.03.2014
Сообщений: 28,903
Записей в блоге: 1
14.10.2018, 17:33
Someone007, можно еще добавить путь вообще не нужно собирать т.к. у нас уже есть полный путь к файлу ярлыка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.10.2018, 17:33
Помогаю со студенческими работами здесь

Скрыть значки рабочего стола
Можно ли реализовать скрытие значков аналагично этому: "ПКМ по раб. столу -> Вид -> Отображать значки рабочего стола"? Сделал...

Служба скриншот рабочего стола
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using...

Программа не запускается с рабочего стола
Добрейший вечерочек! У меня возник некий вопрос по поводу запуска программы на C#. Дело в том, что когда я запускаю эту программу из VS2017...

Картинку из ресурсов на обои рабочего стола
Всем привет! В ресурсах программы есть картинка с именем и расширением Photo.bmp Вопрос к знатокам!) Как сделать эту картинку с ресурсов,...

Копировать все картинки с рабочего стола
Не получается скопировать именно с каждой папки все картинки, как сделать чтобы проверялось с каждой папки и если есть там картинки то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru