2012-09-01 5 views
0

Когда Mozilla Firefox устанавливается, установщик устанавливает Mozilla на панели задач, и я тоже хочу!Записать приложение на панели задач в проекте настройки визуальной студии

Я использую VS2010

+0

Корпорация Майкрософт не рекомендует устанавливать связь с панелью задач. http://blogs.msdn.com/b/oldnewthing/archive/2014/12/30/10583474.aspx – Abhishek

ответ

0
private static void PinUnpinTaskBar(string filePath, bool pin) { 
    if (!File.Exists(filePath)) throw new FileNotFoundException(filePath); 

    // create the shell application object 
    Shell shellApplication = new ShellClass(); 

    string path = Path.GetDirectoryName(filePath); 
    string fileName = Path.GetFileName(filePath); 

    Folder directory = shellApplication.NameSpace(path); 
    FolderItem link = directory.ParseName(fileName); 

    FolderItemVerbs verbs = link.Verbs(); 
    for (int i = 0; i < verbs.Count; i++) { 
     FolderItemVerb verb = verbs.Item(i); 
     string verbName = verb.Name.Replace(@"&", string.Empty).ToLower(); 

     if ((pin && verbName.Equals("pin to taskbar")) || (!pin && verbName.Equals("unpin from taskbar"))) { 

      verb.DoIt(); 
     } 
    } 

    shellApplication = null; 
} 

обязательно включать в себя "Управление Microsoft Shell и автоматизации" ссылка

и сказать спасибо @James Джонстон - его original post

+0

Я хочу, чтобы установщик подключил приложение, а не приложение. где я должен ввести этот код ?! : @ – TYeeTY

+0

он привязал бы .lnk (shorcut) к панели задач, если вы хотите, чтобы установщик сделал это, запустите скрипт http://blogs.technet.com/b/deploymentguys/archive/2009/04/ 08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx –

2

Vb.net Фрагмент кода для Pin to/Unpin из панели задач и меню «Пуск». (Рамочный 3,5)

Dim shellApplication As Shell = New ShellClass() 

Dim directoryName As String = Path.GetDirectoryName(filePath) 
Dim fileName As String = Path.GetFileName(filePath) 

Dim directory As Shell32.Folder = shellApplication.[NameSpace](directoryName) 
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) 
If (verbName.Equals("Pin to Start Menu")) Or (verbName.Equals("Unpin from Start Menu")) Then 

    verb.DoIt() 
    End If 
Next 
shellApplication = Nothing 

«Filepath это путь EXE-файла, который вы хотите прикрепить/открепить панель задач

В случае пиннингу/открепление Taskbar заменить„Закрепить в меню Пуск“с«булавкой к Панель задач» и„Изъять из меню Пуск“, чтобы„отколоть от панели задач“

Все возлагали файлы находится в

C:\Users\%LoggedIn_User_Name%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned 

Этот код работает на Windo ws7 US English.

Cheers!

+0

Я программист на C#, но это не вопрос. Я хочу, чтобы установщик сделал это для меня, поэтому, где я должен писать эти коды? – TYeeTY

+0

, если вы получите сообщение об ошибке типа 'Interop type 'ActiveHomeScriptLib.ActiveHomeClass' не может быть встроено. Вместо этого используйте применимый интерфейс. «Вы должны установить свойство« Вставить типы взаимодействия »для сборки shell32 в« False ». https://stackoverflow.com/questions/2483659/interop-type-cannot-be-embedded – PeterCo

Смежные вопросы