VBA / VB6 - Minu dokumendid + keskkonnamuutujad

Kausta "Minu dokumendid" tee sisaldab muutuva kasutajanime komponenti ja muudatusi ühelt kasutajalt teisele. VBA-s või VB6-s on võimalik kirjutada kausta "Minu dokumendid", et seda kasutada, olenemata kasutajanimest, funktsioonide abil, mis võivad VB6 keskkonnas muutujaid lugeda . Nagu iga programmeerimiskeele puhul, nõuab VB6 või VBA koodide kirjutamine teadmisi põhiliste programmeerimiskontseptsioonide kohta, sealhulgas alamprogrammid, silmused ja spetsiifilised VB6 funktsioonid. Keskkonnamuutuja väärtust vastuvõtva keskkonna funktsioone, nagu näiteks Environ $, saab kasutada VB6 keskkonnas muutujate lugemiseks koodi loomiseks.

Nagu kuvatakse Windows Exploreris, näib kausta Minu dokumendid olevat juured, kuid see pole nii. See asub C: dokumentide ja sätete alamkataloogis. Probleem on selles, et see alamkataloog võtab kasutaja nime ja seda ei muudeta mitte ainult ühest arvutist teise, vaid ka arvukaid kasutajaid toetavatele arvutitele.

Järgmised koodid võimaldavad vaikimisi avada kausta Minu dokumendid olenemata sellest, kas kasutaja on sisse loginud.

VBA-ga

Lihtsalt kleepige järgmine kood üldmoodulisse:

Valik Selgesõnaline

Privaatne tüüp SHITEMID

cb nii kaua

abID Baidina

Lõpp-tüüp

Privaatne tüüp ITEMIDLIST

mkid Nagu SHITEMID

Lõpp-tüüp

Privaatne Const CSIDL_PERSONAL Nagu pikk = & H5

Eraldi deklareerimise funktsioon SHGetSpecialFolderLocation Lib "shell32.dll" _

(ByVal hwndOwner nii kaua, ByVal nFolder Long Long, _

pidl Nagu ITEMIDLIST) nii kaua

Eraldi deklareerimise funktsioon SHGetPathFromIDList Lib "shell32.dll" Alias ​​"SHGetPathFromIDListA" _

ByVal pidl Nii kaua, ByVal pszPath kui stringina nii kaua

Avalik funktsioon Rep_Documents () Stringina

Dim lRet nii kaua, IDL kui ITEMIDLIST, sPath as String

lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)

Kui lRet = 0 Seejärel

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

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

Rep_Documents = Vasak $ (sPath, InStr (sPath, Chr $ (0)) - 1

Veel üks

Rep_Documents = vbNullString

Lõpeta kui

Lõppfunktsioon

Funktsiooni helistamiseks looge lihtsalt nupp ja kleepige järgmine kood:

Privaatne alamkomentButton1_Click ()

Rakud (5, 2) = Rep_Documents ()

Lõpeta alam

VB6-ga

VB6 all kasutage keskkonnamuutujat UserProfile (see toimib ka VBA-ga):

 Dim sPathUser kui string

sPathUser = Keskkond $ ("USERPROFILE") & "minu dokumendid"

MsgBox sPathUser

Keskkonna funktsioonid

Funktsioon Environ $ on kasutatav keskkonnamuutuja väärtuse saamiseks.

Näiteks, kui kasutasite WINDIR-käsku (Windows), oleksite saanud kausta, kuhu Windows on installitud (C: Windows).

Neid muutujaid saab kasutada partiifailides, käivitusprogrammi kaudu ja programmeerimiskeskkonnas nagu VB ja VBA.

  • Kirjutamine% UserProfile% viitab praegusele kasutajale.
  • Kirjutamine% UserProfile% Minu dokumendid viitab kausta Minu dokumendid.
  • Kirjutades% WinDir% saab Windowsi kausta.
  • % Tmp% sisestamine annab teile juurdepääsu ajutistele failidele.

Windowsi muutujad

  • Vaikekasutaja muutujad
    • TEMP ajutine kataloog
    • TMP ajutine kataloog
  • Süsteemi muutujad
    • Käsurea ComSpec muutuja rada.
    • FP_NO_HOST_CHECK?
    • NUMBER_OF_PROCESSORS?
    • OS tagastab kasutatava OS.
    • Tee?
    • PATHEXT?
    • PROCESSOR_ARCHITECTURE Tagastab protsessori arhitektuuri (x86 jne ...)
    • PROCESSOR_IDENTIFIER Tagastab protsessori ID.
    • PROCESSOR_LEVEL?
    • PROCESSOR_REVISION Tagastab protsessori muudatuste arvu
    • TEMP ajutine kataloog.
    • TMP ajutine kataloog.
    • Windir kaust, kuhu Windows on installitud.
    • SystemRoot kaust, kuhu on installitud Windows.

Pange tähele, et:

Kui olete administraatorina sisse logitud, saab muudatusi teha juhtpaneeli / täiustatud süsteemi / keskkonnamuutujate kaudu.
Eelmine Artikkel Järgmine Artikkel

Top Näpunäited