VBA / VB6 - Moje dokumenty + Premenné prostredia
Ako je zobrazené v Prieskumníkovi systému Windows, priečinok Dokumenty sa nachádza v koreňovom adresári, ale nie je to tak. Nachádza sa v podadresári C: Dokumenty a nastavenia. Problém je v tom, že tento podadresár berie meno používateľa a mení sa nielen z jedného počítača na druhý, ale aj z počítačov, ktoré podporujú viacerých používateľov.
Nasledujúce kódy vám štandardne umožňujú prístup k priečinku Moje dokumenty bez ohľadu na prihláseného používateľa.
S VBA
Stačí vložiť nasledujúci kód do všeobecného modulu:Možnosť Explicit
Súkromný typ SHITEMID
cb Ako dlho
abID ako Byte
Typ ukončenia
Súkromný typ ITEMIDLIST
mkid Ako SHITEMID
Typ ukončenia
Súkromné Const CSIDL_PERSONAL Ako Long = & H5
Funkcia privátneho deklarácie SHGetSpecialFolderLocation Lib "shell32.dll" _
(ByVal hwndOwner As Long, ByVal nFolder As Long, _
pidl As ITEMIDLIST) Ako dlho
Funkcia súkromného deklarácie SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
ByVal pidl Ako dlho, ByVal pszPath As String As Long
Verejná funkcia Rep_Documents () As String
Dim lRet As Long, IDL ako ITEMIDLIST, sPath As String
lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)
Ak lRet = 0 Potom
sPath = String $ (512, Chr $ (0))
lRet = SHGetPathFromIDList (ByVal IDL.mkid.cb, ByVal sPath)
Rep_Documents = Left $ (sPath, InStr (sPath, Chr $ (0)) - 1)
inak
Rep_Documents = vbNullString
Koniec Ak
Funkcia konca
Ak chcete zavolať funkciu, jednoducho vytvorte tlačidlo a vložte nasledujúci kód:
Private Sub CommandButton1_Click ()
Bunky (5, 2) = Rep_Documents ()
End Sub
S VB6
Podľa VB6, použite premennú prostredia UserProfile (to tiež funguje s VBA):Dim sPathUser ako StringsPathUser = Environ $ ("USERPROFILE") & "moje dokumenty" \ t
MsgBox sPathUser
Funkcie prostredia
Funkcia Environ $ sa používa na príjem hodnoty premennej prostredia.Napríklad, keď ste použili príkaz WINDIR (Windows), získali by ste priečinok, v ktorom je nainštalovaný systém Windows (C: Windows).
Tieto premenné môžu byť použité v dávkových súboroch, cez utilitu Run av programovacom prostredí ako VB a VBA.
- Písanie% UserProfile% odkazuje na aktuálneho používateľa.
- Písanie% UserProfile% Dokumenty sa týkajú priečinka Moje dokumenty.
- Písanie% WinDir% dostane priečinok Windows.
- Písanie% tmp% umožňuje prístup k dočasným súborom.
Premenné systému Windows
- Premenné pre predvoleného používateľa
- Dočasný adresár TEMP
- Dočasný adresár TMP
- Systémové premenné
- Premenná cesta ComSpec pre príkazový riadok.
- FP_NO_HOST_CHECK?
- NUMBER_OF_PROCESSORS?
- OS Vráti používaný operačný systém.
- Cesta?
- PATHEXT?
- PROCESSOR_ARCHITECTURE Vracia architektúru procesora (x86 atď.)
- PROCESSOR_IDENTIFIER Vracia ID procesora.
- PROCESSOR_LEVEL?
- PROCESSOR_REVISION Vracia počet revízií procesora
- Dočasný adresár TEMP.
- Dočasný adresár TMP.
- priečinok, kde je nainštalovaný systém Windows.
- Priečinok SystemRoot, v ktorom je nainštalovaný systém Windows.