Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SysDir

34 views
Skip to first unread message

Denis Los

unread,
Oct 15, 1999, 3:00:00 AM10/15/99
to
Как поживаете, All ?

Как yзнать сyбж?

C уважением, Dizzer

Anton Lobastoff

unread,
Oct 19, 1999, 3:00:00 AM10/19/99
to
Hi, Denis!

Friday October 15 1999 17:17, Denis Los wrote to All:

DL> Как поживаете, All ?

DL> Как yзнать сyбж?

API: GetSystemDirectory

За сим мое почтение, Антон.
http://www-geocad.nstu.nsk.su/~tony/ e-mail: to...@ftc.ru


Denis Los

unread,
Oct 19, 1999, 3:00:00 AM10/19/99
to
Как поживаете, Anton ?

Мои бортовые системы запеленговали, что в Вторник Октябрь 19 1999 12:03, Anton
Lobastoff писал Denis Los:


DL>> Как yзнать сyбж?

AL> API: GetSystemDirectory
Я с API пока не сталкивался :(
Мог бы ты пpимеpчик наpисовать?

C уважением, Dizzer

Arkadiy Olovyannikov

unread,
Oct 20, 1999, 3:00:00 AM10/20/99
to

Denis Los <Deni...@p8.f71.n5045.z2.fidonet.org> сообщил в новостях
следующее:9400...@p8.f71.n5045.z2.FIDOnet.ftn...

> Как поживаете, All ?
>
> Как yзнать сyбж?

Если конкретно субж, то через API - GetSystemDirectory. А если шире, то при
работе винда создает виртуальные папки. Номера их в SystemList приведены
ниже. Некоторые виртуальные папки (не все) имеют физические аналоги.

----------Cut------------
Const CSIDL_DESKTOP = &H0 '{desktop}
Const CSIDL_INTERNET = &H1 'Internet Explorer (icon on
desktop)
Const CSIDL_PROGRAMS = &H2 'Start Menu\Programs
Const CSIDL_CONTROLS = &H3 'My Computer\Control Panel
Const CSIDL_PRINTERS = &H4 'My Computer\Printers
Const CSIDL_PERSONAL = &H5 'My Documents
Const CSIDL_FAVORITES = &H6 '{user name}\Favorites
Const CSIDL_STARTUP = &H7 'Start Menu\Programs\Startup
Const CSIDL_RECENT = &H8 '{user name}\Recent
Const CSIDL_SENDTO = &H9 '{user name}\SendTo
Const CSIDL_BITBUCKET = &HA '{desktop}\Recycle Bin
Const CSIDL_STARTMENU = &HB '{user name}\Start Menu
Const CSIDL_DESKTOPDIRECTORY = &H10 '{user name}\Desktop
Const CSIDL_DRIVES = &H11 'My Computer
Const CSIDL_NETWORK = &H12 'Network Neighborhood
Const CSIDL_NETHOOD = &H13 '{user name}\nethood
Const CSIDL_FONTS = &H14 'windows\fonts
Const CSIDL_TEMPLATES = &H15
Const CSIDL_COMMON_STARTMENU = &H16 'All Users\Start Menu
Const CSIDL_COMMON_PROGRAMS = &H17 'All Users\Programs
Const CSIDL_COMMON_STARTUP = &H18 'All Users\Startup
Const CSIDL_COMMON_DESKTOPDIRECTORY = &H19'All Users\Desktop
Const CSIDL_APPDATA = &H1A '{user name}\Application Data
Const CSIDL_PRINTHOOD = &H1B '{user name}\PrintHood
Const CSIDL_LOCAL_APPDATA = &H1C '{user name}\Local
Setttings\Application Data (non roaming)
Const CSIDL_ALTSTARTUP = &H1D 'non localized startup
Const CSIDL_COMMON_ALTSTARTUP = &H1E 'non localized common startup
Const CSIDL_COMMON_FAVORITES = &H1F
Const CSIDL_INTERNET_CACHE = &H20
Const CSIDL_COOKIES = &H21
Const CSIDL_HISTORY = &H22
Const CSIDL_COMMON_APPDATA = &H23 'All Users\Application Data
Const CSIDL_WINDOWS = &H24 'GetWindowsDirectory()
Const CSIDL_SYSTEM = &H25 'GetSystemDirectory()
Const CSIDL_PROGRAM_FILES = &H26 'C:\Program Files
Const CSIDL_MYPICTURES = &H27 'C:\Program Files\My Pictures
Const CSIDL_PROFILE = &H28 'USERPROFILE
Const CSIDL_SYSTEMX86 = &H29 'x86 system directory on RISC
Const CSIDL_PROGRAM_FILESX86 = &H2A 'x86 C:\Program Files on RISC
Const CSIDL_PROGRAM_FILES_COMMON = &H2B 'C:\Program Files\Common
Const CSIDL_PROGRAM_FILES_COMMONX86 = &H2C 'x86 Program Files\Common on RISC
Const CSIDL_COMMON_TEMPLATES = &H2D 'All Users\Templates
Const CSIDL_COMMON_DOCUMENTS = &H2E 'All Users\Documents
Const CSIDL_COMMON_ADMINTOOLS = &H2F 'All Users\Start
Menu\Programs\Administrative Tools
Const CSIDL_ADMINTOOLS = &H30 '{user name}\Start
Menu\Programs\Administrative Tools

Const CSIDL_FLAG_CREATE = &H8000 'combine with CSIDL_ value to
force create on SHGetSpecialFolderLocation()
Const CSIDL_FLAG_DONT_VERIFY = &H4000 'combine with CSIDL_ value to
force create on SHGetSpecialFolderLocation()
Const CSIDL_FLAG_MASK = &HFF00 'mask for all possible flag
values
Const SHGFP_TYPE_CURRENT = &H0 'current value for user, verify
it exists
Const SHGFP_TYPE_DEFAULT = &H1

Const MAX_LENGTH = 260
Const S_OK = 0
Const S_FALSE = 1

Private Declare Function SHGetFolderPath Lib "shfolder.dll" Alias
"SHGetFolderPathA" (ByVal hwndOwner As Long, ByVal nFolder As Long, ByVal
hToken As Long, ByVal dwReserved As Long, ByVal lpszPath As String) As Long


Private Function GetFolderPath(CSIDL As Long) As String
Dim sPath As String
Dim sTmp As String
'fill pidl with the specified folder item
sPath = Space$(MAX_LENGTH)
If SHGetFolderPath(Me.hWnd, CSIDL, 0&, SHGFP_TYPE_CURRENT, sPath) = S_OK
Then
sTmp = Left$(sPath, InStr(sPath, Chr$(0)) - 1)
End If
GetFolderPath = sTmp
End Function
----------------
Вызов: SysPath = GetFolderPath (CSIDL_SYSTEM)
Все константы об'являть не обязательно, можно вызвать и так
SysPath = GetFolderPath (&H25)
Системные папки (Мой компьютер, корзина и т.д.) спрятаны и доступа к их
физическим аналогам нет, но многие функции API позволяют работать напрямую с
виртуальными папками.

WBR Ark

Anton Lobastoff

unread,
Oct 20, 1999, 3:00:00 AM10/20/99
to
Hi, Denis!

Tuesday October 19 1999 23:34, Denis Los wrote to Anton Lobastoff:

DL>>> Как yзнать сyбж?

AL>> API: GetSystemDirectory

DL> Я с API пока не сталкивался :(
DL> Мог бы ты пpимеpчик наpисовать?

Учись, запускай API Viewer и вперед.

declare Function GetSystemDirectory lib "kernel32" alias &
"GetSystemDirectoryA" (byval lpBuffer$, byval nSize&) as long

dim sDir$
sDir=space(512)
GetSystemDirectory(sDir,len(sDir))

Max Malashenko

unread,
Oct 20, 1999, 3:00:00 AM10/20/99
to
Пpивет, Denis!

Tuesday October 19 1999 23:34, Denis Los wrote to Anton Lobastoff:

DL>>> Как yзнать сyбж?

AL>> API: GetSystemDirectory

DL> Я с API пока не сталкивался :(
DL> Мог бы ты пpимеpчик наpисовать?

Private Declare Function GetSystemDirectory Lib "kernel32" Alias _
"GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As _ Long) As Long

Private Function DirSystemWindows() As String
Dim wDir$, n%

wDir = Space$(256)
n = GetSystemDirectory(wDir, 256)
wDir = Left$(wDir, n)

If n Then DirSystemWindows = wDir & "\"

End Function

Макс
----
E-Mail : ma...@nikom.tagil.ru


Andrew Milyaev

unread,
Oct 26, 1999, 3:00:00 AM10/26/99
to
Hi Denis!

Вторник Октябрь 19 1999, Denis Los отписал Anton Lobastoff такие слова:

DL>>> Как yзнать сyбж?

AL>> API: GetSystemDirectory

DL> Я с API пока не сталкивался :(
DL> Мог бы ты пpимеpчик наpисовать?

Что-нить типа такого:

Public Declare Function GetSystemDirectory Lib "kernel32" Alias _
"GetSystemDirectoryA" (ByVal lpBuffer As String, _
ByVal nSize As Long) As Long

Public Const MAX_PATH = 260

Public Function GetSysDir() As String
Dim strBuffer as String
Dim lngResult as Long

strBuffer = Space$(MAX_PATH)
lngResult = GetSystemDirectory(strBuffer, MAX_PATH)
If lngResult <> 0 Then
GetSysDir = strBuffer
Else
GetSysDir = ""
End If
End Function

С УВАЖЕHИЕМ!
·∙≈ SuB-ZeR0 frOM tHe iCE ≈∙· E-Mail: _subz...@mail.ru
- Andrew -


0 new messages