Ярлык на рабочем столе

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Мамонт
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 479
Зарегистрирован: 21.02.2005 (Пн) 16:48
Откуда: Ленинград

Ярлык на рабочем столе

Сообщение Мамонт » 30.09.2005 (Пт) 20:41

Чёрт! Весь поиск перерыл! как мне создать ярлык на рабочем столе? или хотябы узнать путь к рабочему столу!

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 30.09.2005 (Пт) 20:48

Api-Guide писал(а):
Код: Выделить всё
Const CSIDL_DESKTOP = &H0
Const CSIDL_PROGRAMS = &H2
Const CSIDL_CONTROLS = &H3
Const CSIDL_PRINTERS = &H4
Const CSIDL_PERSONAL = &H5
Const CSIDL_FAVORITES = &H6
Const CSIDL_STARTUP = &H7
Const CSIDL_RECENT = &H8
Const CSIDL_SENDTO = &H9
Const CSIDL_BITBUCKET = &HA
Const CSIDL_STARTMENU = &HB
Const CSIDL_DESKTOPDIRECTORY = &H10
Const CSIDL_DRIVES = &H11
Const CSIDL_NETWORK = &H12
Const CSIDL_NETHOOD = &H13
Const CSIDL_FONTS = &H14
Const CSIDL_TEMPLATES = &H15
Const MAX_PATH = 260
Private Type SHITEMID
    cb As Long
    abID As Byte
End Type
Private Type ITEMIDLIST
    mkid As SHITEMID
End Type
Private Declare Function ShellAbout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hWnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long
Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Sub Form_Load()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    'Show an about window
    ShellAbout Me.hWnd, App.Title, "Created by the KPD-Team 1999", ByVal 0&
    'Set the graphical mode to persistent
    Me.AutoRedraw = True
    'Print the folders to the form
    Me.Print "Start menu folder: " + GetSpecialfolder(CSIDL_STARTMENU)
    Me.Print "Favorites folder: " + GetSpecialfolder(CSIDL_FAVORITES)
    Me.Print "Programs folder: " + GetSpecialfolder(CSIDL_PROGRAMS)
    Me.Print "Desktop folder: " + GetSpecialfolder(CSIDL_DESKTOP)
End Sub
Private Function GetSpecialfolder(CSIDL As Long) As String
    Dim r As Long
    Dim IDL As ITEMIDLIST
    'Get the special folder
    r = SHGetSpecialFolderLocation(100, CSIDL, IDL)
    If r = NOERROR Then
        'Create a buffer
        Path$ = Space$(512)
        'Get the path from the IDList
        r = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$)
        'Remove the unnecessary chr$(0)'s
        GetSpecialfolder = Left$(Path, InStr(Path, Chr$(0)) - 1)
        Exit Function
    End If
    GetSpecialfolder = ""
End Function

Мамонт
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 479
Зарегистрирован: 21.02.2005 (Пн) 16:48
Откуда: Ленинград

Сообщение Мамонт » 01.10.2005 (Сб) 14:12

Странно...я чёто этого не видел...

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 03.10.2005 (Пн) 6:35

Или вот еще вариант:
Код: Выделить всё
КАК ИСПОЛЬЗУЯ WINDOWS SCRIPT HOST СОЗДАТЬ ЯРЛЫК С ПАРАМЕТРАМИ
'========================================================
'Функция для создания ярлыка
'--------------------------------------------------------
'FullLinkName - Полное имя ярлыка
'FullFileName - Полное имя файла для которого создается ярлык
'Argument - Параметры командной строки
'========================================================
Private Function CreateLink (ByVal FullLinkName As String, ByVal FullFileName As String, Optional ByVal Argument as String = "")
    Dim oShellLink as Object
    'Создание Объекта WshShortcut
    Set oShellLink = WshShell.CreateShortcut(FullLinkName)
    'Устанавливаем путь к файлу
    oShellLink.TargetPath = FullFileName
    'Передаем аргументы командной строки
    oShellLink.Arguments = Argument
    'Сохраняем ярлык
    oShellLink.Save
    'Освобождаем объект WshShortcut
    Set oShellLink = Nothing
End Function

Свойство WshShortcut.Arguments можно также использовать для параметров, которые начинаются со слеша. Например, здесь показано как, можно использовать аргумент /u утилиты Regsvr32.exe для снятия регистрации с контрола Mycontrol.ocx.

'Устанавливаем параметры для снятия регистрации с Mycontrol.ocx
oShellLink.Arguments = "/u c:\windows\system\Mycontrol.ocx"

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Ярлык на рабочем столе

Сообщение Andrey Fedorov » 03.10.2005 (Пн) 7:53

Format C: писал(а):Чёрт! Весь поиск перерыл! как мне создать ярлык на рабочем столе? или хотябы узнать путь к рабочему столу!


Самое простое и примитивное:

Set WshShell = CreateObject("WScript.Shell")
sDesktop = WshShell.SpecialFolders("Desktop")
Set oShellLink = WshShell.CreateShortcut(sDesktop & "" & sLnkFile)
....

Остальное в Hep-e...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Мамонт
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 479
Зарегистрирован: 21.02.2005 (Пн) 16:48
Откуда: Ленинград

Сообщение Мамонт » 03.10.2005 (Пн) 8:27

Я просто искал в API-guide и не нашол!


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 40

    TopList