Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Répertoire du spooler (Windows 98, XP, Vista, etc...)

5 réponses
Avatar
HD
Bonjour,

Via VBA, Je voudrais connaître le répertoire du spooler d'une machine... et
ce, quelque soit la version de l'OS Microsoft...


Merci d'avance pour votre aide
--
@+
HD

5 réponses

Avatar
isabelle
bonjour HD,

Sub CheminRepertoiresSpeciaux()
'Testé avec Excel2002 & WinXp
Const Cible = &H10 'Desktop
Dim objShell As Object
Dim objFolder As Object, objFolderItem As Object
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(Cible)
Set objFolderItem = objFolder.Self
MsgBox objFolderItem.Path
End Sub

La liste des constantes pour afficher le chemin des autres dossiers
spéciaux de Windows
(Const Cible = &H5 'Mes Documents )

&H5 = My Documents
&HC = (Virtual) My Documents
&H27 = My DocumentsMy Pictures
&H2E = Documents
&HD = My DocumentsMy Music
&HE = My DocumentsMy Video
&H0 = Virtual Desktop
&H1 = Virtual Internet Explorer (icon on desktop)
&H2 = Start MenuPrograms
&H3 = Virtual My ComputerControl Panel
&H4 = Virtual My ComputerPrinters
&H6 = Favorites
&H7 = Start MenuProgramsStartup
&H8 = Recent
&H9 = SendTo
&HA = Virtual Recycle Bin
&HB = Start Menu
&H10 = Desktop
&H11 = Virtual My Computer
&H12 = Virtual Network Neighborhood
&H13 = nethood (may dupe My Network Places)
&H14 = Virtual windowsfonts
&H15 = templates
&H16 = Start Menu
&H17 = Programs
&H18 = Startup
&H19 = Desktop
&H1A = Application Data
&H1B = PrintHood
&H1C = Local SettingsApplicaiton Data (non roaming)
&H1D = nonlocalized startup program group
&H1E = (NT) nonlocalized Startup group for all NT users
&H1F = (NT) all user's favorite items
&H20 = temporary Internet files
&H21 = (NT) Internet cookies
&H22 = (NT) Internet history items
&H23 = Application Data
&H24 = Windows directory or SYSROOT
&H25 = GetSystemDirectory()
&H26 = Program Files
&H28 =
&H29 = x86 system directory on RISC
&H2A = x86 Program Files folder on RISC
&H2B = Program FilesCommon
&H2C = x86 Program Files Common folder on RISC
&H2D = Templates
&H2F = Start MenuProgramsAdministrative Tools
&H30 = Start MenuProgramsAdministrative Tools
&H31 = Virtual Network and dial-up connections folder
&H35 = My Music folder for all users
&H36 = My Pictures folder for all users
&H37 = My Video folder for all users
&H38 = System resource directory
&H39 = Localized resource directory
&H3A = Links to OEM specific apps for all users
&H3B = Local SettingsApplication DataMicrosoftCD Burning
&H3D = Virtual Computers Near Me folder


isabelle

HD a écrit :
Bonjour,

Via VBA, Je voudrais connaître le répertoire du spooler d'une machine... et
ce, quelque soit la version de l'OS Microsoft...


Merci d'avance pour votre aide



Avatar
HD
Merci Isabelle, intéressante liste de constantes systèmes... cela me servira
ultérieurement...

Par contre, je n'ai pas trouvé de constante se rapportant au spooler...

@+
HD
Avatar
MichDenis
Bonjour HD,

Est-ce possible de savoir ce que tu veux faire ?




"HD" a écrit dans le message de groupe de discussion :
h5e07s$2jve$
Merci Isabelle, intéressante liste de constantes systèmes... cela me servira
ultérieurement...

Par contre, je n'ai pas trouvé de constante se rapportant au spooler...

@+
HD
Avatar
HD
> Est-ce possible de savoir ce que tu veux faire ?


En fait... j'ai réalisé une macro qui génére feuille par feuille un PDF (via
une imprimante virtuelle) dont le nom correspond au numéro d'ordre concaténé
avec le nom de la feuille Excel. En fait, je regarde ce qu'il y'a dans le
spool pour savoir si le fichier d'une feuille est bien généré pour pouvoir
ensuite passer à la génération de la feuille suivante.

Maintenant, je passe par la lecture de la BdR pour trouver le répertoire de
spool mais ça a été testé sous XP mais cela ne devrait pas fonctionner sous
les versions antérieures et ultérieures de Windows.

J'utilise cette fonction pour lire le répertoire du spooler:

Function FRepSpool()
Set wsh = CreateObject("WScript.Shell")
Pd =
"HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPrintPrintersDefaultSpoolDirectory"
FRepSpool = wsh.RegRead(Pd)
End Function

@+
HD
Avatar
MichDenis
Bonjour HD,

Je crois que c'est une question pour guru de Windows...
il y a de nombreux forums sur le sujet !

Pour obtenir le répertoire "Spool" sous vista, je pourrais utiliser
ceci... est-ce que c'est cela que tu cherches ?

'Déclaration de L'API
Private Declare Function GetSystemDirectoryA Lib "kernel32" _
(ByVal lpBuffer As String, ByVal lSize As Integer) As Integer

'--------------------------------
Function DirSystem() As String
Dim lRetVal As Long
Static ssSystemDir As String
If Len(ssSystemDir) = 0 Then
ssSystemDir = String(255, " ")
lRetVal = GetSystemDirectoryA(ssSystemDir, 255)
ssSystemDir = Trim$(ssSystemDir)
ssSystemDir = Left$(ssSystemDir, Len(ssSystemDir) - 1)
If Right$(ssSystemDir, 1) <> "" Then
ssSystemDir = ssSystemDir & ""
End If
End If
DirSystem = ssSystemDir
End Function
'--------------------------------
Sub TEST()
MsgBox DirSystem & "Spool"
End Sub
'--------------------------------



"HD" a écrit dans le message de groupe de discussion :
h5gr9e$e1q$
Est-ce possible de savoir ce que tu veux faire ?


En fait... j'ai réalisé une macro qui génére feuille par feuille un PDF (via
une imprimante virtuelle) dont le nom correspond au numéro d'ordre concaténé
avec le nom de la feuille Excel. En fait, je regarde ce qu'il y'a dans le
spool pour savoir si le fichier d'une feuille est bien généré pour pouvoir
ensuite passer à la génération de la feuille suivante.

Maintenant, je passe par la lecture de la BdR pour trouver le répertoire de
spool mais ça a été testé sous XP mais cela ne devrait pas fonctionner sous
les versions antérieures et ultérieures de Windows.

J'utilise cette fonction pour lire le répertoire du spooler:

Function FRepSpool()
Set wsh = CreateObject("WScript.Shell")
Pd "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPrintPrintersDefaultSpoolDirectory"
FRepSpool = wsh.RegRead(Pd)
End Function

@+
HD