Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Ярлыки на VB Добавлено: 17.04.05 01:57  

Автор вопроса:  999 | Web-сайт: wolf002.narod.ru
Всем привет
Хотел бы узнать как на 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-сайт: wolf002.narod.ru
 Профиль | | #2
Добавлено: 17.04.05 11:58
GSerg
не мог ты скопировать ответ на мой вопрос и кинуть сюда или мне на wolf002@narod.ru, Плиз
а то я ни как по указаной тобой ссылке зайти не могу
На сам http://bbs.vbstreets.ru
зашел но там огромный форум

Ответить

Номер ответа: 3
Автор ответа:
 999



Вопросов: 13
Ответов: 26
 Web-сайт: wolf002.narod.ru
 Профиль | | #3
Добавлено: 17.04.05 12:15
Не много порывшись в нете нашел вот что, но там не сказано как я могу узнать путь у уже существующего ярлыка.

Если кто знает как это сдеать пишите.

' *******************
' *
' * Создание ярлыка на рабочем столе.
' *

Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell";)

Dim MyShortcut, MyDesktop, DesktopPath

' Получение доступа к рабочему столу используя объект WshSpecialFolders
DesktopPath = WSHShell.SpecialFolders(";Desktop";)

' Создание ярлыка на рабочем столе
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-сайт: wolf002.narod.ru
 Профиль | | #5
Добавлено: 17.04.05 18:47
GSerg
Извени, что такой тупой
а ты не мог код написать вот этого через shell
допустим у меня есть ярлык на рабочем столе, я знаю путь к нему, но путь к нему это не путь к файлу на который он ссылатся.
И как мне узнать путь, тот, когда по ярлыку правой кнопкой кликаешь, там написано
объект, а снизу путь к нему.

Ответить

Номер ответа: 6
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #6 Добавлено: 18.04.05 08:20
Private Sub Form_Load()
  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-сайт: wolf002.narod.ru
 Профиль | | #7
Добавлено: 18.04.05 23:52
GSerg Спасибо все работает
А как мне заменить s.TargetPath т.е путь полученый из уже созданого ярлыка на свой.

Ответить

Номер ответа: 8
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #8 Добавлено: 19.04.05 05:04
Мммм....
Такой вопрос.
Ты когда код видишь, ты из него выводы делаешь?
Потому что в том куске, который привёл ты сам, как раз изменение пути и производится.

Ответить

Номер ответа: 9
Автор ответа:
 999



Вопросов: 13
Ответов: 26
 Web-сайт: wolf002.narod.ru
 Профиль | | #9
Добавлено: 21.04.05 18:08
т.е что мне переписать путь к уже созданому ярлыку нужно написать

Private Sub Form_Load()
  ;Dim 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-сайт: wolf002.narod.ru
 Профиль | | #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
    ;DeskTop
    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)
   ;Dim WshShell As Object
   ;Dim oShellLink As Object
   ;Dim sLinkPath As String
   Set WshShell = CreateObject("WScript.Shell";)
   Select Case dest
       Case DeskTop
            sLinkPath = WshShell.SpecialFolders(";Desktop";)
       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

надеюсь разберешься

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам