WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  Visual Basic
  Как достать свойства ярлыка lnk

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Как достать свойства ярлыка lnk
admin_ali опубликован 22-01-2002 17:24 MSK   Click Here to See the Profile for admin_ali   Click Here to Email admin_ali  
помогите вытянуть из .lnk путь, папку, картинку и т.д.
Vasya2000 опубликован 23-01-2002 04:19 MSK     Click Here to See the Profile for Vasya2000  Click Here to Email Vasya2000     
Помогите !!!
AlexR опубликован 24-01-2002 14:48 MSK     Click Here to See the Profile for AlexR  Click Here to Email AlexR     
'Получить свойства файла с помощью функции API GetFileAttributes:

Const READONLY = &H1
Const HIDDEN = &H2
Const SYSTEM = &H4
Const DIRECTORY = &H10
Const ARCHIVE = &H20
Const NORMAL = &H80
Const COMPRESSED = &H800
Private Declare Function GetFileAttributes Lib "kernel32.dll" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long

Private Sub Command1_Click()
Dim val As String
Dim attr As Long
attr = GetFileAttributes("C:\MSDOS.SYS")
If (attr And &H1) = &H1 Then
val = " 'Только для чтения',"
End If
If (attr And &H2) = &H2 Then
val = val & " 'Скрытый',"
End If
If (attr And &H4) = &H4 Then
val = val & " 'Системный',"
End If
If (attr And &H20) = &H20 Then
val = val & " 'Архивный',"
End If
If (attr And &H80) = &H80 Then
val = val & " 'Нормальный',"
End If
If (attr And &H800) = &H800 Then
val = val & " 'Компрессированный',"
End If
val = Left(val, Len(val) - 1)
If (attr And &H10) = &H10 Then
MsgBox "Данная папка имеет атрибуты " & val
Else
MsgBox "Данный файл имеет атрибуты " & val
End If
End
End Sub

'Пример исрользования FileSystemObject. Для использования установи ссылку на Microsoft Scripting Runtime через меню Project/References.
'Расположи на форме ListBox.

Dim FSys As New FileSystemObject
Private Sub Form_Load()
Set qn = FSys.GetFile("D:\2\attributes\FileAtribs2.vbp")
List1.AddItem "Имя файла " & qn.Name
List1.AddItem "Полный путь " & qn.Path
List1.AddItem "Дата создания " & qn.DateCreated
List1.AddItem "Дата модификации " & qn.DateLastModified
List1.AddItem "Дата последнего доступа " & qn.DateLastAccessed
List1.AddItem "Размер файла " & qn.Size
End Sub

Vasya2000 опубликован 24-01-2002 16:15 MSK     Click Here to See the Profile for Vasya2000  Click Here to Email Vasya2000     
Спасибо
Vasya2000 опубликован 25-01-2002 04:19 MSK     Click Here to See the Profile for Vasya2000  Click Here to Email Vasya2000     
Всё это конечно круто, только я не понял как достать путь из lnk файла??
AlexR опубликован 25-01-2002 14:01 MSK     Click Here to See the Profile for AlexR  Click Here to Email AlexR     
А вот насчёт ярлыка не знаю...
Lamer опубликован 27-01-2002 19:10 MSK     Click Here to See the Profile for Lamer  Click Here to Email Lamer     
Когда не знаешь, как, нужно действовать в тупую. Ведь ярлык это тоже файл с расширением выаываыаываыа. Открой файл для чтения побайтно, затем считай все байты в массив, и посмотри какие байты по кодам () соответствуют буквам, ":", "\" и т. п. Рассмотри полученную последовательность по расстоянию групп байт друг от друга, затем получиться выделить отдельные фразы. Тогда по порядку стледования, можно будет выделить путь и папку (соответственно). А картинку ты можешь получить с помощью АПИ ф-ции:
Public Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long
Только в структуре SHFILEINFO надо указать, что нужна именно картинка.
IZO admin опубликован 28-01-2002 22:02 MSK     Click Here to See the Profile for IZO admin  Click Here to Email IZO admin     
А можно воспользоваться объектом WshShortcut (Windows Script Host):
set WshShell = WScript.CreateObject("WScript.Shell")
...........
set oShellLink = WshShell.CreateShortcut(...)
(CreateShortcut не только создаёт линк, но и открывает доступ к существующему.)
А дальше - атрибуты:

oShellLink.TargetPath = ...
oShellLink.WindowStyle = ...
oShellLink.Hotkey = "CTRL+SHIFT+F"
oShellLink.IconLocation = "....exe, 0"
oShellLink.Description = "Shortcut Script"
oShellLink.WorkingDirectory = ...

Как это лучше сделать в VB - через References или через API - с ходу не скажу, но главное - механизм работы с ярлыками есть!

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.