Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
1
.NET 4.x

Закрепить ярлык на панеле задач

07.06.2018, 09:18. Показов 1448. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем знатокам доброго времени суток!

Вопрос в заголовке.
Нашел код, который на время выполнения программы помещает значок в панель задач.
VB.NET
1
2
3
4
5
 Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        Dim Icon2 As Icon = Icon.ExtractAssociatedIcon("E:\FromE\VB2008\MyScreenShot\Sing.ico")
        Me.Icon = Icon2
        Me.ShowInTaskbar = True
    End Sub
Но при выходе из программы значок пропадает.
Как ЗАКРЕПИТЬ значок на панеле задач?

Спасибо за понимание.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2018, 09:18
Ответы с готовыми решениями:

Ярлык Opera в панеле задач
На панеле задач есть ярлык Opera с "нормальным" значком и с прописанным адресом ""C:\Program Files...

Не могу закрепить ярлык на панели задач
Пробовал решить эту проблему, через готовый файл реестра из этой темы (...

Как закрепить ярлык на панели задач
Можно ли как-то там закрепить какой-либо ярлык? (разумеется из делфи)

Форма на панеле задач
Когда запускаю програму, то форма отображаетса на панеле задач. Но как только запускаю вторую...

15
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
07.06.2018, 13:35 2
Anderis49,процедура позволяет как закреплять в панели задач, так и откреплять. Работать будет только в русскоязычной версии windows
VB.NET
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
Imports System.IO
Imports Shell32
'...
  Sub PinUnpinTaskBar(ByVal filePath As String, ByVal pin As Boolean)
        If Not File.Exists(filePath) Then
            Throw New FileNotFoundException(filePath)
        End If
 
        Dim shellApplication As Shell = New ShellClass()
 
        Dim path As String = System.IO.Path.GetDirectoryName(filePath)
        Dim fileName As String = System.IO.Path.GetFileName(filePath)
 
        Dim directory As Folder = shellApplication.NameSpace(path)
        Dim link As FolderItem = directory.ParseName(fileName)
 
        Dim verbs As FolderItemVerbs = link.Verbs()
        For i As Integer = 0 To verbs.Count - 1
            Dim verb As FolderItemVerb = verbs.Item(i)
            Dim verbName As String = verb.Name.Replace("&", String.Empty).ToLower()
            If (pin AndAlso verbName.Equals("закрепить на панели задач")) OrElse (Not pin AndAlso verbName.Equals("открепить от панели задач")) Then
                verb.DoIt()
            End If
        Next i
 
        shellApplication = Nothing
    End Sub
Использование
VB.NET
1
2
PinUnpinTaskBar("C:\Program Files (x86)\Drakensang Online\thinclient.exe", True) ' закрепить
 PinUnpinTaskBar("C:\Program Files (x86)\Drakensang Online\thinclient.exe", False) ' открепить
Для работы необходимо подключить Microsoft Shell Controls And Automation в свойствах проекта из раздела COM, а так же отключить внедрение типов взаимодействия
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
07.06.2018, 16:27  [ТС] 3
Цитата Сообщение от Orlangur1991 Посмотреть сообщение
отключить внедрение типов взаимодействия
А это как сделать?
0
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
07.06.2018, 16:31 4
Anderis49,
Закрепить ярлык на панеле задач
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
07.06.2018, 18:00  [ТС] 5
Orlangur1991,
А у меня такого нет
Какой у вас редактор?
У меня VB 2010 Express

Блин...нашел
Миниатюры
Закрепить ярлык на панеле задач  
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
07.06.2018, 18:06  [ТС] 6
Orlangur1991,

Ничего не происходит...
VB.NET
1
PinUnpinTaskBar("C:\Program Files (x86)\Drakensang Online\thinclient.exe", True) ' закрепить
загнал в кнопку.
0
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
07.06.2018, 18:11 7
Anderis49, в первом параметре передается путь к файлу, ярлык на который должен быть закреплен в панели, это так?
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
07.06.2018, 18:38  [ТС] 8
Цитата Сообщение от Orlangur1991 Посмотреть сообщение
ярлык на который должен быть закреплен в панели, это так?
Так!
0
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
07.06.2018, 18:46 9
Anderis49, какая ос?
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
07.06.2018, 18:49  [ТС] 10
Цитата Сообщение от Orlangur1991 Посмотреть сообщение
какая ос?
Win10.
Миниатюры
Закрепить ярлык на панеле задач  
0
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
07.06.2018, 18:52 11
Anderis49, в win 10 не работает)
Если кто знает как сделать в win 10, то мне тоже интересно
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
07.06.2018, 20:03  [ТС] 12
Цитата Сообщение от Orlangur1991 Посмотреть сообщение
в win 10 не работает
Это называется ПРИПЛЫЛИ!
0
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
07.06.2018, 23:46 13
Anderis49, тут описано решение для winodws 10
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
08.06.2018, 08:18  [ТС] 14
Цитата Сообщение от Orlangur1991 Посмотреть сообщение
тут описано решение для winodws 10
Там на С написано, а я в нем, хуже, чем свинья в апельсинах.
И не факт, что при переводе в VB все будет работать.
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
08.06.2018, 09:47 15
Цитата Сообщение от Anderis49 Посмотреть сообщение
Там на С написано
На C#. Конвертер+небольшая правка руками. Проверить, к сожалению, негде:
VB.NET
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
Class SurroundingClass
    <DllImport("kernel32.dll", CharSet:=CharSet.Auto, SetLastError:=True, BestFitMapping:=False, ThrowOnUnmappableChar:=True)>
    Private Shared Function LoadLibrary(ByVal lpLibFileName As String) As IntPtr
    <DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=True, BestFitMapping:=False, ThrowOnUnmappableChar:=True)>
    Private Shared Function LoadString(ByVal hInstance As IntPtr, ByVal wID As UInteger, ByVal lpBuffer As StringBuilder, ByVal nBufferMax As Integer) As Integer
 
    Public Shared Function PinUnpinTaskbar(ByVal filePath As String, ByVal pin As Boolean) As Boolean
        If Not File.Exists(filePath) Then Throw New FileNotFoundException(filePath)
        Dim MAX_PATH As Integer = 255
        Dim actionIndex = If(pin, 5386, 5387)' 5386 is the DLL index for"Pin to Tas&kbar", ref. http://www.win7dll.info/shell32_dll.html
        'uncomment the following line to pin to start instead
        'actionIndex = pin ? 51201 : 51394;
        Dim szPinToStartLocalized As StringBuilder = New StringBuilder(MAX_PATH)
        Dim hShell32 As IntPtr = LoadLibrary("Shell32.dll")
        LoadString(hShell32, CUInt(actionIndex), szPinToStartLocalized, MAX_PATH)
        Dim localizedVerb As String = szPinToStartLocalized.ToString()
        Dim path As String = Path.GetDirectoryName(filePath)
        Dim fileName As String = Path.GetFileName(filePath)
        Dim shellApplication As Object = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"))
        Dim directory As Object = shellApplication.[NameSpace](path)
        Dim link As Object = directory.ParseName(fileName)
        Dim verbs As Object = link.Verbs()
 
        For i As Integer = 0 To verbs.Count() - 1
            Dim verb As Object = verbs.Item(i)
 
            If verb.Name.Equals(localizedVerb) Then
                verb.DoIt()
                Return True
            End If
        Next
 
        Return False
    End Function
End Class
0
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
08.06.2018, 10:15 16
ViterAlex, это, если я не ошибаюсь, вроде тоже для win7, для win10 описано там ниже
0
08.06.2018, 10:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2018, 10:15
Помогаю со студенческими работами здесь

появляется значок на панеле задач
Здравствуйте у меня вопрос вот такой значёк?

Видимость программы на панеле задач во время ее выполнения
Добрый день! Уважаемые программисты, подскажите мне как реализовать видимость программы на...

Не модальное диалоговое окно. Не видно значка на панеле задач
Создал не модальное окно по аналогии с модальными, в классе не модального окна почти все тоже самое...

Как закрепить программу на панели задач ?
Сабж... Но вот нету там пункта &quot;Закрепить программу на панели задачь&quot; Программа - winamp. ...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru