Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: рабочий стол Добавлено: 26.01.06 13:48  

Автор вопроса:  Leha
Как узнать путь к папке рабочего стола?

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 26.01.06 14:27
В MSDN нашел пока только через WSH
Подключаем в Project-Refrences Windows Script Host Object Model и..
Dim wsh As New WshShell
MsgBox wsh.SpecialFolders(";Desktop";)

Должно быть и через API.

Ответить

Номер ответа: 2
Автор ответа:
 SerJ



Вопросов: 24
Ответов: 332
 Профиль | | #2 Добавлено: 26.01.06 14:53
Можно просто в реестре прочитать по ветке HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Название параметра - Desktop
Значение - то, что тебе нужно

Ответить

Номер ответа: 3
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #3
Добавлено: 26.01.06 15:21
О как! Ещё должны быть варианты.

Ответить

Номер ответа: 4
Автор ответа:
 SerJ



Вопросов: 24
Ответов: 332
 Профиль | | #4 Добавлено: 26.01.06 20:51
Option Explicit
Private Const TOKEN_QUERY = (&H8)
Private Declare Function GetAllUsersProfileDirectory Lib "userenv.dll" Alias "GetAllUsersProfileDirectoryA" (ByVal lpProfileDir As String, lpcchSize As Long) As Boolean
Private Declare Function GetDefaultUserProfileDirectory Lib "userenv.dll" Alias "GetDefaultUserProfileDirectoryA" (ByVal lpProfileDir As String, lpcchSize As Long) As Boolean
Private Declare Function GetProfilesDirectory Lib "userenv.dll" Alias "GetProfilesDirectoryA" (ByVal lpProfileDir As String, lpcchSize As Long) As Boolean
Private Declare Function GetUserProfileDirectory Lib "userenv.dll" Alias "GetUserProfileDirectoryA" (ByVal hToken As Long, ByVal lpProfileDir As String, lpcchSize As Long) As Boolean
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long

Private Sub Form_Load()
    Dim sBuffer As String, Ret As Long, hToken As Long
    sBuffer = String(255, 0)
    OpenProcessToken GetCurrentProcess, TOKEN_QUERY, hToken
    GetUserProfileDirectory hToken, sBuffer, 255
    MsgBox StripTerminator(sBuffer) & "\Рабочий стол"
End Sub

Function StripTerminator(sInput As String) As String
    Dim ZeroPos As Long
    ZeroPos = InStr(1, sInput, Chr$(0))
    If ZeroPos > 0 Then
        StripTerminator = Left$(sInput, ZeroPos - 1)
    Else
        StripTerminator = sInput
    End If
End Function

Ответить

Номер ответа: 5
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #5
Добавлено: 27.01.06 08:20
Это не сработает на английской версии Windows, а также на Win95/98/ME, хотя тоже можно.

Ответить

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



Вопросов: 24
Ответов: 332
 Профиль | | #6 Добавлено: 27.01.06 13:07
Это не сработает на английской версии Windows

Ничё, можно версию проверить :)
и написать варианты для английской, французкой, немецкой и т.д... :)

Ответить

Номер ответа: 7
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #7 Добавлено: 03.02.06 18:40
Ну можно и с помощью Environ. Токо приноровиться надо.

Ответить

Страница: 1 |

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



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