КАК создать ярлык на рабочем столе

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

КАК создать ярлык на рабочем столе

Сообщение viter.alex » 08.12.2008 (Пн) 12:34

Как программно создать ярлык на рабочем столе? В качестве картинки для ярлыка нужно использовать свой файл изображения. Ярлык должен вести на сайт.
Попутно еще проблема, а как переносить изображение ярлыка вместе с ярлыком?

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: КАК создать ярлык на рабочем столе

Сообщение Williams » 08.12.2008 (Пн) 12:38

Искать по ключевым словам "WshShell"
И вы думаете, что вас оставят в живых после прочтения этого поста?

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: КАК создать ярлык на рабочем столе

Сообщение viter.alex » 08.12.2008 (Пн) 13:17

Williams писал(а):Искать по ключевым словам "WshShell"

Искал в MSDN, но ничего нет. Даже термина такого.
Есть в Google для VBScript, но мне нужен VB.Net

вообще, задача состоит в том, чтобы программа создавала файл, который может запускать окно браузера с определенной ссылкой. Самый простой способ это — ярлык, но заковыка еще в том, что иконка этого файла должна быть в нем самом, а не где-то в другом месте. Ярлык этого не может :(.
Может как-нибудь можно создавать exe-файл с такими свойствами?
Последний раз редактировалось viter.alex 08.12.2008 (Пн) 13:29, всего редактировалось 1 раз.
Лучше день потерять — потом за пять минут долететь!

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: КАК создать ярлык на рабочем столе

Сообщение Nord777 » 08.12.2008 (Пн) 13:22

Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: КАК создать ярлык на рабочем столе

Сообщение viter.alex » 08.12.2008 (Пн) 13:40


Спасибо, по ярлыку все ясно, но как сделать, чтобы картинка хранилась в самом файле?
Лучше день потерять — потом за пять минут долететь!

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: КАК создать ярлык на рабочем столе

Сообщение Williams » 08.12.2008 (Пн) 14:40

viter.alex писал(а):

Спасибо, по ярлыку все ясно, но как сделать, чтобы картинка хранилась в самом файле?


Следует уделить внимание фрагменту отмеченному жирным шрифтом.

With shortCut
.TargetPath = _
System.Reflection.Assembly.GetExecutingAssembly.Location()
.WindowStyle = 1
.Description = "Run Typist Summary"
.WorkingDirectory = DesktopDir
' the next line gets the first Icon from the executing program
.IconLocation = _
System.Reflection.Assembly.GetExecutingAssembly.Location() & _
", 0"

' the next line sets the userID and passWord into the shortcut
' as arguments
' which will be read from the command line.
.Arguments = userID & ", " & passWord
.Save() ' save the shortcut file
End With

[пометка для модераторов: с тэгом Code знаком, но для наглядности, думаю, следует оставить как есть]
И вы думаете, что вас оставят в живых после прочтения этого поста?

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: КАК создать ярлык на рабочем столе

Сообщение viter.alex » 08.12.2008 (Пн) 15:40

Эту строку я видел, но дело в том, что в примере создается ярлык для программы, а мне нужно ярлык для ссылки. т.е. никакого
Код: Выделить всё
GetExecutingAssembly
, т.к. исполняемого файла нет.
Я думаю, что может быть можно как-то создать exe-шник, задав ему иконку и url, который надо открыть. И чтобы при запуске уже этого нового файла просто открывалась страница.
еще раз напомню, что картинка должна быть в файле :(
Лучше день потерять — потом за пять минут долететь!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: КАК создать ярлык на рабочем столе

Сообщение iGrok » 08.12.2008 (Пн) 15:56

viter.alex писал(а):Эту строку я видел, но дело в том, что в примере создается ярлык для программы, а мне нужно ярлык для ссылки. т.е. никакого
Код: Выделить всё
GetExecutingAssembly
, т.к. исполняемого файла нет.
Я думаю, что может быть можно как-то создать exe-шник, задав ему иконку и url, который надо открыть. И чтобы при запуске уже этого нового файла просто открывалась страница.
еще раз напомню, что картинка должна быть в файле :(

Ну если хочется именно .exe:
В ресурсы пихаешь иконку и строку со ссылкой.
Экзешник при открытии смотрит строку в ресурсах, и делает ShellExecute.
Это даже на асме можно нарисовать один раз, а потом просто строку и иконку в ресурсах заменять каким-нибудь редактором ресурсов.

Правда, не знаю, как на это будут антивирусы реагировать. По идее, нормально. )
label:
cli
jmp label

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: КАК создать ярлык на рабочем столе

Сообщение viter.alex » 08.12.2008 (Пн) 20:17

iGrok писал(а):…Ну если хочется именно .exe:
В ресурсы пихаешь иконку и строку со ссылкой.
Экзешник при открытии смотрит строку в ресурсах, и делает ShellExecute.
Это даже на асме можно нарисовать один раз, а потом просто строку и иконку в ресурсах заменять каким-нибудь редактором ресурсов.

Правда, не знаю, как на это будут антивирусы реагировать. По идее, нормально. )


Вот и я пришел к такому выводу. Спасибо, оказалось, что мыслил в правильном направлении. Есть еще одна идея генерировать VBScript, который бы открывал url, но можно ли к скрипту прикрутить иконку?
Лучше день потерять — потом за пять минут долететь!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: КАК создать ярлык на рабочем столе

Сообщение iGrok » 08.12.2008 (Пн) 20:56

viter.alex писал(а):Вот и я пришел к такому выводу. Спасибо, оказалось, что мыслил в правильном направлении. Есть еще одна идея генерировать VBScript, который бы открывал url, но можно ли к скрипту прикрутить иконку?

Файл скрипта у тебя полюбому отображается с установленной в системе иконкой. Т.е. нет.

Экстрактятся при отображении иконки из exe, ico, cur, ani. Можно заставить экстрактить из dll, bmp(миниатюру), но это уже настройками системы.
Если ты хочешь хранить иконку именно в файле, пожалуй exe - единственный вариант.
label:
cli
jmp label

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: КАК создать ярлык на рабочем столе

Сообщение viter.alex » 09.12.2008 (Вт) 11:59

Значит решил я делать так: есть основное приложение, в котором я задаю ссылку и картинку для значка. Есть файл шаблона, консольное приложение, в котором прописан ресурс url. Я создаю копию этого шаблона и заменяю в нем иконнку и url. Все.

Господа, а как открывать ссылку при запуске этого консольного приложения? Где искать? Что прописать в Main()?

И второй вопрос: как получить доступ к ресурсам другого файла. К своему через My, а как к чужому подступиться?
Еще персональный вопрос к Williams'у: где можно почитать про функции из user32.dll?
Лучше день потерять — потом за пять минут долететь!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: КАК создать ярлык на рабочем столе

Сообщение Viper » 09.12.2008 (Вт) 12:17

viter.alex писал(а):И второй вопрос: как получить доступ к ресурсам другого файла. К своему через My, а как к чужому подступиться?
Через функции API.
viter.alex писал(а):Еще персональный вопрос к Williams'у: где можно почитать про функции из user32.dll?
MSDN даст ответ по функциям как этой библиотеки, так и любой другой входящей в Windows API.
Весь мир матрица, а мы в нем потоки байтов!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: КАК создать ярлык на рабочем столе

Сообщение iGrok » 09.12.2008 (Вт) 13:46

viter.alex писал(а):Господа, а как открывать ссылку при запуске этого консольного приложения? Где искать? Что прописать в Main()?

Я же писал, ShellExecute. Поищи по названию этой ф-ции.
Тебе нужно вместо пути и имени исполняемого файла ей дать url (http://...)
label:
cli
jmp label

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: КАК создать ярлык на рабочем столе

Сообщение viter.alex » 09.12.2008 (Вт) 14:14

iGrok писал(а):
viter.alex писал(а):Господа, а как открывать ссылку при запуске этого консольного приложения? Где искать? Что прописать в Main()?

Я же писал, ShellExecute. Поищи по названию этой ф-ции.
Тебе нужно вместо пути и имени исполняемого файла ей дать url (http://...)

А что нужно подключить, чтобы ShellExecute был виден у меня?
Лучше день потерять — потом за пять минут долететь!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: КАК создать ярлык на рабочем столе

Сообщение iGrok » 09.12.2008 (Вт) 14:27

iGrok писал(а):Поищи по названию этой ф-ции.

Гугль, гугль и ещё раз гугль.

1. Это API.
2. Первая же ссылка в гугле по запросу "ShellExecute" ведёт на описание функции в MSDN.
3. Первая же ссылка в гугле по запросу "ShellExecute VB" ведёт на описание работы с этой ф-цией в VB на vbaccelerator.com.

4. Если не очень с английским, третья ссылка в яндексе по запросу "ShellExecute VB" ведёт на тему, где русским языком написано, как с ней работать.
label:
cli
jmp label

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: КАК создать ярлык на рабочем столе

Сообщение viter.alex » 09.12.2008 (Вт) 14:38

iGrok писал(а):
iGrok писал(а):Поищи по названию этой ф-ции.

Гугль, гугль и ещё раз гугль.

1. Это API.
2. Первая же ссылка в гугле по запросу "ShellExecute" ведёт на описание функции в MSDN.
3. Первая же ссылка в гугле по запросу "ShellExecute VB" ведёт на описание работы с этой ф-цией в VB на vbaccelerator.com.

4. Если не очень с английским, третья ссылка в яндексе по запросу "ShellExecute VB" ведёт на тему, где русским языком написано, как с ней работать.


Да, уж google!
А я сразу пошел на MSDN и там ищу по ShellExecute, а он выдает столько мусора, что мама не горюй. Спасибо за терпение. :D
Лучше день потерять — потом за пять минут долететь!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: КАК создать ярлык на рабочем столе

Сообщение Viper » 09.12.2008 (Вт) 14:55

viter.alex писал(а):А я сразу пошел на MSDN и там ищу по ShellExecute, а он выдает столько мусора, что мама не горюй. Спасибо за терпение. :D
Пошел правильно, результат странный, в MSDN при задании ShellExecute в окне поиска Look for: выдается ровно две ссылки, одна из которых на нужную тебе функцию, вторая на метод интерфейса.
Весь мир матрица, а мы в нем потоки байтов!

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: КАК создать ярлык на рабочем столе

Сообщение viter.alex » 09.12.2008 (Вт) 15:07

Viper писал(а):
viter.alex писал(а):А я сразу пошел на MSDN и там ищу по ShellExecute, а он выдает столько мусора, что мама не горюй. Спасибо за терпение. :D
Пошел правильно, результат странный, в MSDN при задании ShellExecute в окне поиска Look for: выдается ровно две ссылки, одна из которых на нужную тебе функцию, вторая на метод интерфейса.

Вот что дает MSDN
Я не волшебник, только учусь. :)
Лучше день потерять — потом за пять минут долететь!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: КАК создать ярлык на рабочем столе

Сообщение Viper » 09.12.2008 (Вт) 15:31

А в онлайн версии только через Search можно искать? У меня то локальная версия, там слева панель Index, поле ввода Look for и всех делов.
Весь мир матрица, а мы в нем потоки байтов!

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: КАК создать ярлык на рабочем столе

Сообщение viter.alex » 09.12.2008 (Вт) 15:45

Viper писал(а):А в онлайн версии только через Search можно искать? У меня то локальная версия, там слева панель Index, поле ввода Look for и всех делов.

Если я еще и MSDN на рабочем компе запущу, то вообще работать не смогу. Я сейчас на работе, и пока есть свободно время, занимаюсь потихоньку. :) вот приду домой, там машинка своя, тогда и покопаюсь от души!
Лучше день потерять — потом за пять минут долететь!

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: КАК создать ярлык на рабочем столе

Сообщение Williams » 09.12.2008 (Вт) 16:32

viter.alex писал(а):Еще персональный вопрос к Williams'у: где можно почитать про функции из user32.dll?

Наиболее полноценным источником будет Windows API Reference, но и здесь тоже можно почерпнуть полезного
И вы думаете, что вас оставят в живых после прочтения этого поста?


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Mail.ru [бот] и гости: 99

    TopList