VBA / VB6 - Моите документи + променливи на околната среда

Пътят на папката "Моите документи" съдържа променлив потребителски компонент и се променя от един потребител на друг. Възможно е да се напише код във VBA или VB6 за достъп до папката "Моите документи" независимо от потребителското име, с помощта на функции, които могат да четат променливи на околната среда във VB6 . Както при всеки език за програмиране, писането на код във VB6 или VBA изисква познаване на основни концепции за програмиране, включително подпрограми, цикли и специфични VB6 функции. Функциите на околната среда, като Environ $, която получава стойността на променлива на обкръжението, могат да се използват за писане на код за четене на променливи на средата във VB6 .

Както е показано в Windows Explorer, папката "Моите документи" изглежда е в корена, но това не е така. Той се намира в поддиректория на C: Documents and Settings. Проблемът е, че тази поддиректория приема името на потребителя и се променя не само от един компютър на друг, но и от персонални компютри, поддържащи множество потребители.

Следните кодове ви позволяват да получите достъп до папката "Моите документи" по подразбиране, независимо от потребителския потребител.

С VBA

Просто поставете следния код в общ модул:

Опция Изрично

Личен тип SHITEMID

cb Дълъг

abid As Byte

Тип край

Частен тип ITEMIDLIST

mkid Като SHITEMID

Тип край

Частни константи CSIDL_PERSONAL Като Long = & H5

Функция за лично деклариране SHGetSpecialFolderLocation Lib "shell32.dll" _

(ByVal hwndOwner Long, ByVal nFolder Long, _

pidl Като ITEMIDLIST) Както Дълго

Функция за лично деклариране SHGetPathFromIDList Lib "shell32.dll" Псевдоним "SHGetPathFromIDListA" _

ByVal pidl Като дълъг, ByVal pszPath като дълъг

Публична функция Rep_Documents () Като низ

Dim lRet As Long, IDL Като ITEMIDLIST, sPath As String

lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)

Ако lRet = 0 Тогава

sPath = String $ (512, Chr $ (0))

lRet = SHGetPathFromIDList (ByVal IDL.mkid.cb, ByVal sPath)

Rep_Documents = Ляво $ (sPath, InStr (sPath, Chr $ (0)) - 1)

още

Rep_Documents = vbNullString

Край Ако

Крайна функция

За да извикате функцията, просто създайте бутон и поставете следния код:

Частно подчинениеButton1_Click ()

Клетки (5, 2) = Rep_Documents ()

Край Под

С VB6

Под VB6 използвайте променливата на обкръжението UserProfile (това също работи с VBA):

 Намалете sPathUser като String

sPathUser = Environ $ ("USERPROFILE") & "моите документи

MsgBox sPathUser

Функции за околната среда

Функцията Environ $ се използва за получаване на стойността на променлива на обкръжението.

Например, когато използвате командата WINDIR (Windows), ще получите папката, в която е инсталиран Windows (C: Windows).

Тези променливи могат да се използват в пакетни файлове, чрез помощната програма Run и в програмна среда като VB и VBA.

  • Въвеждането на% UserProfile% се позовава на текущия потребител.
  • Въвеждане на% UserProfile% Моите документи се позовава на папката "Моите документи".
  • Въвеждането на% WinDir% получава папката Windows.
  • Въвеждането на% tmp% ви дава достъп до временни файлове.

Променливи на Windows

  • Променливи за потребител по подразбиране
    • TEMP временна директория
    • TMP временна директория
  • Системни променливи
    • Променлива пътека на ComSpec за командния ред.
    • FP_NO_HOST_CHECK?
    • NUMBER_OF_PROCESSORS?
    • OS Връща използваната операционна система.
    • Път?
    • PATHEXT?
    • PROCESSOR_ARCHITECTURE Връща архитектурата на процесора (x86 и т.н.)
    • PROCESSOR_IDENTIFIER Връща идентификатора на процесора.
    • PROCESSOR_LEVEL?
    • PROCESSOR_REVISION Връща броя на ревизиите на процесора
    • TEMP временна директория.
    • TMP временна директория.
    • Windir папка, където е инсталиран Windows.
    • Папка SystemRoot, където е инсталиран Windows.

Отбележи, че:

Ако сте влезли като администратор, промените могат да бъдат направени чрез Контролен панел / Разширени системни променливи.
Предишна Статия Следваща Статия

Топ Съвети