Автор
|
Тема: Как достать свойства ярлыка lnk
|
admin_ali |
опубликован 22-01-2002 17:24 MSK
помогите вытянуть из .lnk путь, папку, картинку и т.д.
|
Vasya2000
|
опубликован 23-01-2002 04:19 MSK
Помогите !!! |
AlexR
|
опубликован 24-01-2002 14:48 MSK
'Получить свойства файла с помощью функции 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 LongPrivate 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
Спасибо |
Vasya2000
|
опубликован 25-01-2002 04:19 MSK
Всё это конечно круто, только я не понял как достать путь из lnk файла?? |
AlexR
|
опубликован 25-01-2002 14:01 MSK
А вот насчёт ярлыка не знаю... |
Lamer
|
опубликован 27-01-2002 19:10 MSK
Когда не знаешь, как, нужно действовать в тупую. Ведь ярлык это тоже файл с расширением выаываыаываыа. Открой файл для чтения побайтно, затем считай все байты в массив, и посмотри какие байты по кодам () соответствуют буквам, ":", "\" и т. п. Рассмотри полученную последовательность по расстоянию групп байт друг от друга, затем получиться выделить отдельные фразы. Тогда по порядку стледования, можно будет выделить путь и папку (соответственно). А картинку ты можешь получить с помощью АПИ ф-ции: 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
А можно воспользоваться объектом 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 - с ходу не скажу, но главное - механизм работы с ярлыками есть! |