Страница: 1 |
Страница: 1 |
Вопрос: Ярлыки на VB
Добавлено: 17.04.05 01:57
Автор вопроса: 999 | Web-сайт:
Всем привет
Хотел бы узнать как на VB.6 создавать ярлыки
Узнать путь к файлу на который ссылается ярлык (уже имеющийся конечно) Изменить этот путь на свой.
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 17.04.05 05:41
http://bbs.vbstreets.ru/viewtopic.php?t=12156
Номер ответа: 2
Автор ответа:
999
Вопросов: 13
Ответов: 26
Web-сайт:
Профиль | | #2
Добавлено: 17.04.05 11:58
GSerg
не мог ты скопировать ответ на мой вопрос и кинуть сюда или мне на wolf002@narod.ru, Плиз
а то я ни как по указаной тобой ссылке зайти не могу
На сам http://bbs.vbstreets.ru
зашел но там огромный форум
Номер ответа: 3
Автор ответа:
999
Вопросов: 13
Ответов: 26
Web-сайт:
Профиль | | #3
Добавлено: 17.04.05 12:15
Не много порывшись в нете нашел вот что, но там не сказано как я могу узнать путь у уже существующего ярлыка.
Если кто знает как это сдеать пишите.
' *******************
' *
' * Создание ярлыка на рабочем столе.
' *
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell"
Dim MyShortcut, MyDesktop, DesktopPath
' Получение доступа к рабочему столу используя объект WshSpecialFolders
DesktopPath = WSHShell.SpecialFolders("esktop"
' Создание ярлыка на рабочем столе
Set MyShortcut = WSHShell.CreateShortcut(DesktopPath & "\Название ярлыка.lnk"
' Установка и запись свойств ярлыка
MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings("X:\Путь\запускаемый файл.EXT"
MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings("X:\Путь"
MyShortcut.WindowStyle = 4
' MyShortcut.Window = 1
MyShortcut.IconLocation = WSHShell.ExpandEnvironmentStrings("X:\Путь к иконке\файл иконки.EXT"
MyShortcut.Save
WScript.Echo "Мессага о том что иконка создана."
Номер ответа: 4
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #4
Добавлено: 17.04.05 13:09
Значит, нуно регистрироваться...
Но можно и через shell. Вызывай CreateShortcut от уже существующего ярлыка.
Номер ответа: 5
Автор ответа:
999
Вопросов: 13
Ответов: 26
Web-сайт:
Профиль | | #5
Добавлено: 17.04.05 18:47
GSerg
Извени, что такой тупой
а ты не мог код написать вот этого через shell
допустим у меня есть ярлык на рабочем столе, я знаю путь к нему, но путь к нему это не путь к файлу на который он ссылатся.
И как мне узнать путь, тот, когда по ярлыку правой кнопкой кликаешь, там написано
объект, а снизу путь к нему.
Номер ответа: 6
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #6
Добавлено: 18.04.05 08:20
Dim w As Object, s As Object
Set w = CreateObject("WScript.Shell"
'Этот ярлык должен уже существовать
Set s = w.CreateShortcut("c:\Название ярлыка.lnk"
MsgBox s.TargetPath
Set s = Nothing
Set w = Nothing
End Sub
Номер ответа: 7
Автор ответа:
999
Вопросов: 13
Ответов: 26
Web-сайт:
Профиль | | #7
Добавлено: 18.04.05 23:52
GSerg Спасибо все работает
А как мне заменить s.TargetPath т.е путь полученый из уже созданого ярлыка на свой.
Номер ответа: 8
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #8
Добавлено: 19.04.05 05:04
Мммм....
Такой вопрос.
Ты когда код видишь, ты из него выводы делаешь?
Потому что в том куске, который привёл ты сам, как раз изменение пути и производится.
Номер ответа: 9
Автор ответа:
999
Вопросов: 13
Ответов: 26
Web-сайт:
Профиль | | #9
Добавлено: 21.04.05 18:08
т.е что мне переписать путь к уже созданому ярлыку нужно написать
Private Sub Form_Load()
 im w As Object, s As Object
Set w = CreateObject("WScript.Shell"
'Этот ярлык должен уже существовать
Set s = w.CreateShortcut("c:\Название ярлыка.lnk"
s.TargetPath = w.ExpandEnvironmentStrings("X:\Путь\запускаемый файл.EXT"
MsgBox s.TargetPath
Set s = Nothing
Set w = Nothing
End Sub
Номер ответа: 10
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #10
Добавлено: 22.04.05 10:58
Да.
Номер ответа: 11
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #11
Добавлено: 22.04.05 10:59
Чёрт, забыл.
.Save вызови в конце.
Номер ответа: 12
Автор ответа:
999
Вопросов: 13
Ответов: 26
Web-сайт:
Профиль | | #12
Добавлено: 26.04.05 20:11
Уважаемый GSerg
У меня возникла идея
а что если получать путь к папке автозагрузок сливать от туда пути всех хранящихся там ярлыков замаенять на свои, но старые не удалять, а записывать в файл, что б потом их тоже запусать
Вообщем рассмотрим по этапам
1.Наша программа при запуске получает все пути из ярлыков папки автогрузки.и сохраняет их файл.
2.Копирует себя по указанным путям к файлам программ, немножко под другим именем.
3.Записывает свой новый путь в каждый из ярлыков.
4.Далее если все выше изложеноне удалось, при перезапуске, по всем путям из папки ярлыков должно грузиться наша программа.
5.Нужна что б каждая следущая копия нашей программы автоматически закрывалась, если ее клон с другим именнем уже в системе.
Такое возможно????
И если мы будем получать пути из папки автогрузка через WSH, то мы получаем параметров запуска программ, а из папки автозагрузка они чаще всего идут с параметром - сверуться в трей.
Номер ответа: 13
Автор ответа:
Mag
ICQ: 289414238
Вопросов: 30
Ответов: 27
Профиль | | #13
Добавлено: 26.04.05 20:42
Принимай код
Enum ShortCutDest
 eskTop
Programs
StartMenu
StartUp
End Enum
Public Function CreateLink(dest As ShortCutDest, ByVal sName As String, ByVal sPath As String, Optional HotKey As String = "", Optional sIcon As String = "", Optional sWorkingDirectory As String = "", Optional sSubFolder As String = "", Optional WinStyle As Integer = vbNormalFocus)
 im WshShell As Object
 im oShellLink As Object
 im sLinkPath As String
Set WshShell = CreateObject("WScript.Shell"
Select Case dest
Case DeskTop
sLinkPath = WshShell.SpecialFolders("esktop"
Case StartMenu
sLinkPath = WshShell.SpecialFolders("StartMenu"
Case StartUp
sLinkPath = WshShell.SpecialFolders("StartUp"
Case Programs
sLinkPath = WshShell.SpecialFolders("Programs"
End Select
On Error Resume Next
If sSubFolder <> "" Then
sLinkPath = sLinkPath & "\" & sSubFolder
If Dir(sLinkPath) = "" Then MkDir sLinkPath
End If
On Error GoTo 0
Set oShellLink = WshShell.CreateShortCut(sLinkPath & "\" & sName & ".lnk"
oShellLink.WindowStyle = WinStyle
oShellLink.HotKey = sHotKey
oShellLink.TargetPath = sPath
oShellLink.IconLocation = sIcon
oShellLink.Description = sName
oShellLink.WorkingDirectory = sWorkingDirectory
oShellLink.Save
Set oShellLink = Nothing
Set WshShell = Nothing
End Function
Private Sub Command1_Click()
CreateLink DeskTop, "Calculator", "c:\windows\calc.exe", "CTRL+SHIFT+C", "calc.exe,0", "c:\windows"
CreateLink StartMenu, "Calculator", "c:\windows\calc.exe", "CTRL+SHIFT+C", "calc.exe,0", "c:\windows"
CreateLink StartUp, "Calculator", "c:\windows\calc.exe", "CTRL+SHIFT+C", "calc.exe,0", "c:\windows"
CreateLink Programs, "Calculator", "c:\windows\calc.exe", "CTRL+SHIFT+C", "calc.exe,0", "c:\windows", "WinCalc"
CreateLink Programs, "Calculator Help", "c:\windows\help\calc.hlp", "", "winhlp32.exe,0", "c:\windows\help", "WinCalc"
CreateLink Programs, "Visit our web site", "http://vbcity.com", , "shdocvw.dll,0", , "WinCalc", vbMaximizedFocus
End Sub
надеюсь разберешься