Gestion des Imprimantes Sous windows

Gestion des Imprimantes Sous windows

Messagepar Michael DELIQUE » 24 Juil 2009 à 15:41

testé avec Windows XP

[syntax="LotusScript"] Function PrinterList() As Variant

' http://techsupt.winbatch.com/webcgi/web ... inting.txt

'Liste toutes les imprimantes installé"
Dim lstPrinter List As String
Dim vrPrinter As Variant
Dim i As Integer
Dim objWMIService As Variant
Const Computer = "."

On Error Goto ErreurHandle

lstPrinter(0)=""

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" +Computer + "\root\cimv2")
Set vrPrinter = objWMIService.ExecQuery ("Select * from Win32_Printer")
i=0
Forall objPrinter In vrPrinter
lstPrinter(i)=objPrinter.Name
i=i+1
End Forall
Set vrPrinter = Nothing
Set objWMIService = Nothing
PrinterList = lstPrinter
Erase lstPrinter

Exit Function
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
Erase lstPrinter
lstPrinter(0)=""
PrinterList = lstPrinter
Erase lstPrinter
Exit Function
End Function[/syntax]
Dernière édition par Michael DELIQUE le 27 Juil 2009 à 08:05, édité 1 fois.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 24 Juil 2009 à 15:42

[syntax="LotusScript"]Function PrinterDefautGet() As String

'renvois le nom de l'imprimante par défaut

Dim objWMIService As Variant
Dim vrPrinter As Variant
Const Computer = "."

On Error Goto ErreurHandle
PrinterDefautGet = ""

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" +Computer + "\root\cimv2")
Set vrPrinter = objWMIService.ExecQuery ("Select * from Win32_Printer Where Default = True")

Forall objPrinter In vrPrinter
PrinterDefautGet = Trim(Cstr(objPrinter.Name))
Exit Forall
End Forall

Set vrPrinter = Nothing
Set objWMIService = Nothing

Exit Function
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
PrinterDefautGet = ""
Exit Function
End Function[/syntax]
Dernière édition par Michael DELIQUE le 27 Juil 2009 à 08:06, édité 2 fois.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 24 Juil 2009 à 15:42

[syntax="LotusScript"]Function PrinterDefautSet(wPrinter As String) As String

'change l'imprimante par défaut

Dim objWMIService As Variant
Dim vrPrinter As Variant
Const Computer = "."

On Error Goto ErreurHandle

PrinterDefautSet = ""

If Trim(wPrinter) = "" Then
Error 9999,"wPrinter is empty"
Exit Function
End If

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" +Computer + "\root\cimv2")
Set vrPrinter = objWMIService.ExecQuery ({Select * from Win32_Printer Where Name = '}+Trim(Replace(wPrinter,"\","\\"))+{'})

Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name))=Ucase(Trim(wPrinter)) Then
Call objPrinter.SetDefaultPrinter()
PrinterDefautSet = Trim(objPrinter.Name)
Exit Forall
End If
End Forall

If Trim(PrinterDefautSet) = "" Then
'si jamais on ne trouve pas l'imprimante on passe toute les imprimante en revue
Set vrPrinter = Nothing
Set vrPrinter = objWMIService.ExecQuery ("Select * from Win32_Printer")
Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name))=Ucase(Trim(wPrinter)) Then
Call objPrinter.SetDefaultPrinter()
PrinterDefautSet = Trim(objPrinter.Name)
Exit Forall
End If
End Forall
End If

Set vrPrinter = Nothing
Set objWMIService = Nothing

Exit Function
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
PrinterDefautSet = ""
Exit Function
End Function[/syntax]
Dernière édition par Michael DELIQUE le 07 Juin 2010 à 15:35, édité 2 fois.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 24 Juil 2009 à 15:44

[syntax="LotusScript"]Function PrinterOrientationGet(wPrinter As String) As String

'récupere l'orientation de l'imprimante passé en parametre sinon renvois l'orientation de l'imprimante par défaut

Dim objWMIService As Variant
Dim vrPrinter As Variant
Dim Printer As String
Const Computer = "."

On Error Goto ErreurHandle
PrinterOrientationGet = ""

If Trim(wPrinter) = "" Then
Printer = Trim(PrinterDefautGet())
Else
Printer = Trim(wPrinter)
End If

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" +Computer + "\root\cimv2")
Set vrPrinter = objWMIService.ExecQuery ({Select * from Win32_PrinterConfiguration Where Name = '}+Replace(Printer,"\","\\")+{'})

Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name)) = Ucase(Printer) Then
Select Case objPrinter.Orientation
Case 1 'Portrait
PrinterOrientationGet = "P"
Case 2 'Paysage
PrinterOrientationGet = "L"
End Select

Exit Forall
End If
End Forall

If Trim(PrinterOrientationGet ) = "" Then
'si jamais on ne trouve pas l'imprimante on passe toute les imprimante en revue
Set vrPrinter = Nothing
Set vrPrinter = objWMIService.ExecQuery ("Select * from Win32_PrinterConfiguration")
Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name))=Ucase(Printer) Then
Select Case objPrinter.Orientation
Case 1'Portrait
PrinterOrientationGet = "P"
Case 2 'Paysage
PrinterOrientationGet = "L"
End Select
Exit Forall
End If
End Forall
End If

Set vrPrinter = Nothing
Set objWMIService = Nothing

Exit Function
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
PrinterOrientationGet = ""
Exit Function
End Function[/syntax]
Dernière édition par Michael DELIQUE le 27 Juil 2009 à 08:13, édité 1 fois.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 24 Juil 2009 à 15:45

[syntax="LotusScript"]Function PrinterOrientationSet(wOrientation As String, wPrinter As String) As String

'change l'orientation de l'imprimante passé en parametre sinon change l'orientation de l'imprimante par défaut

Dim objWMIService As Variant
Dim vrPrinter As Variant
Dim Printer As String
Dim nbOrientation As Integer
Const Computer = "."

On Error Goto ErreurHandle
PrinterOrientationSet = ""

Select Case Ucase(Trim(wOrientation))
Case "PORTRAIT","P","1"
nbOrientation = 1
Case "PAYSAGE","LANDSCAPE","L","2"
nbOrientation = 2
Case ""
Error 9999,"wOrientation is Empty"
Exit Function
Case Else
Error 9999,"Bad Orientation value : "+wOrientation
Exit Function
End Select

If Trim(wPrinter) = "" Then
Printer = Trim(PrinterDefautGet())
Else
Printer = Trim(wPrinter)
End If

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" +Computer + "\root\cimv2")
Set vrPrinter = objWMIService.ExecQuery ({Select * from Win32_PrinterConfiguration Where Name = '}+Replace(Printer,"\","\\")+{'})

Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name)) = Ucase(Printer) Then
objPrinter.Orientation = nbOrientation
If nbOrientation = 1 Then
PrinterOrientationSet = "P" 'Portrait
Else
PrinterOrientationSet = "L" 'Paysage
End If
Exit Forall
End If
End Forall

If Trim(PrinterOrientationSet) = "" Then
'si jamais on ne trouve pas l'imprimante on passe toute les imprimante en revue
Set vrPrinter = Nothing
Set vrPrinter = objWMIService.ExecQuery ("Select * from Win32_PrinterConfiguration")
Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name))=Ucase(Printer) Then
objPrinter.Orientation = nbOrientation
If nbOrientation = 1 Then
PrinterOrientationSet = "P" 'Portrait
Else
PrinterOrientationSet = "L" ' Paysage
End If
Exit Forall
End If
End Forall
End If

Set vrPrinter = Nothing
Set objWMIService = Nothing

Exit Function
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
PrinterOrientationSet = ""
Exit Function
End Function[/syntax]
Dernière édition par Michael DELIQUE le 27 Juil 2009 à 08:13, édité 2 fois.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 24 Juil 2009 à 15:45

[syntax="LotusScript"]Function PrinterPropertyGet(wPrinter As String,wPrinterClass As String) As Variant

'list toute les propriétées d'une imprimante

'http://techsupt.winbatch.com/webcgi/webbatch.exe?techsupt/nftechsupt.web+Tutorials+Printing.txt

Dim objWMIService As Variant
Dim vrPrinter As Variant
Dim lstPrinter List As String
Dim Printer As String
Dim PrinterClass As String
Const Computer = "."

On Error Goto ErreurHandle

lstPrinter("NAME")=""

If Trim(wPrinter) = "" Then
Printer = Trim(PrinterDefautGet())
Else
Printer = Trim(wPrinter)
End If

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" +Computer + "\root\cimv2")
Select Case Ucase(Trim(wPrinterClass))
Case "C","CONFIG","CONFIGURATION","WIN32_PRINTERCONFIGURATION"
Set vrPrinter = objWMIService.ExecQuery ({Select * from Win32_PrinterConfiguration Where Name = '}+Replace(Printer,"\","\\")+{'})
PrinterClass = "C"
Case "P","PRINT","PRINTER","WIN32_PRINTER",""
Set vrPrinter = objWMIService.ExecQuery ({Select * from Win32_Printer Where Name = '}+Replace(Printer,"\","\\")+{'})
PrinterClass = "P"
Case Else
Error 9999,"Bad PrinterClass : "+wPrinterClass
Exit Function
End Select

Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name)) = Ucase(Printer) Then

Select Case PrinterClass
Case "C"
On Error Resume Next
lstPrinter("WIN32") = "Win32_PrinterConfiguration"
lstPrinter("BITSPERDEL") = Trim(Cstr(objPrinter.BitsPerPel))
lstPrinter("CAPTION") = Trim(Cstr(objPrinter.Caption))
lstPrinter("COLLATE") = Trim(Cstr(objPrinter.Collate))
lstPrinter("COLOR") = Trim(Cstr(objPrinter.Color))
lstPrinter("COPIES") = Trim(Cstr(objPrinter.Copies))
lstPrinter("DESCRIPTION") = Trim(Cstr(objPrinter.Description))
lstPrinter("DEVICENAME") = Trim(Cstr(objPrinter.DeviceName))
lstPrinter("DISPLAYFLAGS") = Trim(Cstr(objPrinter.DisplayFlags))
lstPrinter("DISPLAYFREQUENCY") = Trim(Cstr(objPrinter.DisplayFrequency))
lstPrinter("DITHERTYPE") = Trim(Cstr(objPrinter.DitherType))
lstPrinter("DRIVERVERSION") = Trim(Cstr(objPrinter.DriverVersion))
lstPrinter("DUPLEX") = Trim(Cstr(objPrinter.Duplex))
lstPrinter("FORMNAME") = Trim(Cstr(objPrinter.FormName))
lstPrinter("HORIZONTALERESOLUTION") = Trim(Cstr(objPrinter.HorizontalResolution))
lstPrinter("ICMINTENT") = Trim(Cstr(objPrinter.ICMIntent))
lstPrinter("ICMMETHOD") = Trim(Cstr(objPrinter.ICMMethod))
lstPrinter("LOGPIXELS") = Trim(Cstr(objPrinter.LogPixels))
lstPrinter("MEDIATYPE") = Trim(Cstr(objPrinter.MediaType))
lstPrinter("NAME") = Trim(Cstr(objPrinter.Name))
lstPrinter("ORIENTATION") = Trim(Cstr(objPrinter.Orientation))
lstPrinter("PAPERLENGTH") = Trim(Cstr(objPrinter.PaperLength))
lstPrinter("PAPERSIZE") = Trim(Cstr(objPrinter.PaperSize))
lstPrinter("PAPERWIDTH") = Trim(Cstr(objPrinter.PaperWidth))
lstPrinter("PELSHEIGHT") = Trim(Cstr(objPrinter.PelsHeight))
lstPrinter("PELSWIDTH") = Trim(Cstr(objPrinter.PelsWidth))
lstPrinter("PRINTQUALITY") = Trim(Cstr(objPrinter.PrintQuality))
lstPrinter("SCALE") = Trim(Cstr(objPrinter.Scale))
lstPrinter("SETTINGID") = Trim(Cstr(objPrinter.SettingID))
lstPrinter("SPECIFICATIONVERSION") = Trim(Cstr(objPrinter.SpecificationVersion))
lstPrinter("TTOPTION") = Trim(Cstr(objPrinter.TTOption))
lstPrinter("VERTICALRESOLUTION") = Trim(Cstr(objPrinter.VerticalResolution))
lstPrinter("XRESOLUTION") = Trim(Cstr(objPrinter.XResolution))
lstPrinter("YRESOLUTION") = Trim(Cstr(objPrinter.YResolution))
On Error Goto ErreurHandle
Case "P"
On Error Resume Next
lstPrinter("WIN32") = " Win32_Printer"
lstPrinter("ATTRIBUTES") = Trim(Cstr(objPrinter.Attributes))
lstPrinter("AVAILABILITY") = Trim(Cstr(objPrinter.Availability))
lstPrinter("AVAILABLEJABSHEETS") = Trim(Cstr(objPrinter.AvailableJobSheets))
lstPrinter("AVERAGEPAGESPERMINUTE") = Trim(Cstr(objPrinter.AveragePagesPerMinute))
lstPrinter("CAPABILITIES") = Trim(Cstr(objPrinter.Capabilities))
lstPrinter("CAPABILITYDESCRIPTIONS") = Trim(Cstr(objPrinter.CapabilityDescriptions))
lstPrinter("CAPTION") = Trim(Cstr(objPrinter.Caption))
lstPrinter("CHARSETSSUPPORTED") = Trim(Cstr(objPrinter.CharSetsSupported))
lstPrinter("COMMENT") = Trim(Cstr(objPrinter.Comment))
lstPrinter("CONFIGMANAGERERRORCODE") = Trim(Cstr(objPrinter.ConfigManagerErrorCode))
lstPrinter("CONFIGMANAGERUSERCONFIG") = Trim(Cstr(objPrinter.ConfigManagerUserConfig))
lstPrinter("CREATIONCLASSNAME") = Trim(Cstr(objPrinter.CreationClassName))
lstPrinter("CURRENTCAPABILITIES") = Trim(Cstr(objPrinter.CurrentCapabilities))
lstPrinter("CURRENTCHARSET") = Trim(Cstr(objPrinter.CurrentCharSet))
lstPrinter("CURRENTLANGUAGE") = Trim(Cstr(objPrinter.CurrentLanguage))
lstPrinter("CURRENTMIMETYPE") = Trim(Cstr(objPrinter.CurrentMimeType))
lstPrinter("CURRENTNATURALLANGUAGE") = Trim(Cstr(objPrinter.CurrentNaturalLanguage))
lstPrinter("CURRENTPAGERTYPE") = Trim(Cstr(objPrinter.CurrentPaperType))
lstPrinter("DEFAULT") = Trim(Cstr(objPrinter.Default))
lstPrinter("DEFAULTCAPABILITIES") = Trim(Cstr(objPrinter.DefaultCapabilities))
lstPrinter("DEFAULTCOPIES") = Trim(Cstr(objPrinter.DefaultCopies))
lstPrinter("DEFAULTLANGUAGE") = Trim(Cstr(objPrinter.DefaultLanguage))
lstPrinter("DEFAULTMIMETYPE") = Trim(Cstr(objPrinter.DefaultMimeType))
lstPrinter("DEFAULTNUMBERUP") = Trim(Cstr(objPrinter.DefaultNumberUp))
lstPrinter("DEFAULTPAPERTYPE") = Trim(Cstr(objPrinter.DefaultPaperType))
lstPrinter("DEFAULTPRIORITY") = Trim(Cstr(objPrinter.DefaultPriority))
lstPrinter("DESCRIPTION") = Trim(Cstr(objPrinter.Description))
lstPrinter("DETECTEDERRORSTATE") = Trim(Cstr(objPrinter.DetectedErrorState))
lstPrinter("DEVICEID") = Trim(Cstr(objPrinter.DeviceID))
lstPrinter("DIRECT") = Trim(Cstr(objPrinter.Direct))
lstPrinter("DOCOMPLETEFIRST") = Trim(Cstr(objPrinter.DoCompleteFirst))
lstPrinter("DRIVERNAME") = Trim(Cstr(objPrinter.DriverName))
lstPrinter("ENABLEBIDI") = Trim(Cstr(objPrinter.EnableBIDI))
lstPrinter("ENBLEDEVQUERYPRINT") = Trim(Cstr(objPrinter.EnableDevQueryPrint))
lstPrinter("ERRORCLEARED") = Trim(Cstr(objPrinter.ErrorCleared))
lstPrinter("ERRORDESCRIPTION") = Trim(Cstr(objPrinter.ErrorDescription))
lstPrinter("ERRORINFORMATION") = Trim(Cstr(objPrinter.ErrorInformation))
lstPrinter("EXTENDEDDETECTEDERRORSTATE") = Trim(Cstr(objPrinter.ExtendedDetectedErrorState))
lstPrinter("EXTENDEDPRINTERSTATUS") = Trim(Cstr(objPrinter.ExtendedPrinterStatus))
lstPrinter("HIDDEN") = Trim(Cstr(objPrinter.Hidden))
lstPrinter("HORIZONTALRESOLUTION") = Trim(Cstr(objPrinter.HorizontalResolution))
lstPrinter("INSTALLDATE") = Trim(Cstr(objPrinter.InstallDate))
lstPrinter("JOBCOUNTSINCELASTRESET") = Trim(Cstr(objPrinter.JobCountSinceLastReset))
lstPrinter("KEEPPRINTEDJOBS") = Trim(Cstr(objPrinter.KeepPrintedJobs))
lstPrinter("LANGUAGESUPPORTED") = Trim(Cstr(objPrinter.LanguagesSupported))
lstPrinter("LASTERRORCODE") = Trim(Cstr(objPrinter.LastErrorCode))
lstPrinter("LOCAL") = Trim(Cstr(objPrinter.Local))
lstPrinter("LOCATION") = Trim(Cstr(objPrinter.Location))
lstPrinter("MARKINGTECHNOLOGY") = Trim(Cstr(objPrinter.MarkingTechnology))
lstPrinter("MAXCOPIES") = Trim(Cstr(objPrinter.MaxCopies))
lstPrinter("MAXNUMBERUP") = Trim(Cstr(objPrinter.MaxNumberUp))
lstPrinter("MAXSIZESUPPORTED") = Trim(Cstr(objPrinter.MaxSizeSupported))
lstPrinter("MIMETYPESSUPPORTED") = Trim(Cstr(objPrinter.MimeTypesSupported))
lstPrinter("NAME") = Trim(Cstr(objPrinter.Name))
lstPrinter("NATURALLANGUAGESSUPPORTED") = Trim(Cstr(objPrinter.NaturalLanguagesSupported))
lstPrinter("NETWORK") = Trim(Cstr(objPrinter.Network))
lstPrinter("PAPERSIZESUPPORTED") = Trim(Cstr(objPrinter.PaperSizesSupported))
lstPrinter("PAPERTYPEAVAILABLE") = Trim(Cstr(objPrinter.PaperTypesAvailable))
lstPrinter("PARAMETERS") = Trim(Cstr(objPrinter.Parameters))
lstPrinter("PNPDEVICEID") = Trim(Cstr(objPrinter.PNPDeviceID))
lstPrinter("PORTNAME") = Trim(Cstr(objPrinter.PortName))
lstPrinter("POWERMANAGEMENTCAPABILITIES") = Trim(Cstr(objPrinter.PowerManagementCapabilities))
lstPrinter("POWERMANAGEMENTSUPPORTED") = Trim(Cstr(objPrinter.PowerManagementSupported))
lstPrinter("PRINTERPAPERNAMES") = Trim(Cstr(objPrinter.PrinterPaperNames))
lstPrinter("PRINTERSTATE") = Trim(Cstr(objPrinter.PrinterState))
lstPrinter("PRINTERSTATUS") = Trim(Cstr(objPrinter.PrinterStatus))
lstPrinter("PRINTERJOBDATATYPE") = Trim(Cstr(objPrinter.PrintJobDataType))
lstPrinter("PRINTPROCESSOR") = Trim(Cstr(objPrinter.PrintProcessor))
lstPrinter("PRIORITY") = Trim(Cstr(objPrinter.Priority))
lstPrinter("PUBLISHED") = Trim(Cstr(objPrinter.Published))
lstPrinter("QUEUED") = Trim(Cstr(objPrinter.Queued))
lstPrinter("RAWONLY") = Trim(Cstr(objPrinter.RawOnly))
lstPrinter("SEPARATORFILE") = Trim(Cstr(objPrinter.SeparatorFile))
lstPrinter("SERVERNAME") = Trim(Cstr(objPrinter.ServerName))
lstPrinter("SHARED") = Trim(Cstr(objPrinter.Shared))
lstPrinter("SHARENAME") = Trim(Cstr(objPrinter.ShareName))
lstPrinter("SPOOLENABLED") = Trim(Cstr(objPrinter.SpoolEnabled))
lstPrinter("STARTTIME") = Trim(Cstr(objPrinter.StartTime))
lstPrinter("STATUS") = Trim(Cstr(objPrinter.Status))
lstPrinter("STATUSINFO") = Trim(Cstr(objPrinter.StatusInfo))
lstPrinter("SYSTEMCREATIONCLASSNAME") = Trim(Cstr(objPrinter.SystemCreationClassName))
lstPrinter("SYSTEMNAME") = Trim(Cstr(objPrinter.SystemName))
lstPrinter("TIMEOFLASTRESET") = Trim(Cstr(objPrinter.TimeOfLastReset))
lstPrinter("UNTILTIME") = Trim(Cstr(objPrinter.UntilTime))
lstPrinter("VERTICALRESOLUTION") = Trim(Cstr(objPrinter.VerticalResolution))
lstPrinter("WORKOFFLINE") = Trim(Cstr(objPrinter.WorkOffline))
On Error Goto ErreurHandle

End Select
Exit Forall
End If
End Forall

Set vrPrinter = Nothing
Set objWMIService = Nothing
PrinterPropertyGet = lstPrinter
Erase lstPrinter

Exit Function
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
Erase lstPrinter
lstPrinter("NAME")=""
PrinterPropertyGet = lstPrinter
Erase lstPrinter
Exit Function
End Function[/syntax]
Dernière édition par Michael DELIQUE le 27 Juil 2009 à 08:15, édité 1 fois.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 24 Juil 2009 à 15:46

[syntax="LotusScript"]Function PrinterTaskStop(wPrinter As String, nbAll As Integer) As Integer

'stop la tache d'impression

Dim objWMIService As Variant
Dim vrPrinter As Variant
Dim Printer As String
Const Computer = "."

On Error Goto ErreurHandle

PrinterTaskStop = False

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" +Computer + "\root\cimv2")

If nbAll = True Then
Set vrPrinter = objWMIService.ExecQuery ("Select * from Win32_Printer")
Forall objPrinter In vrPrinter
objPrinter.CancelAllJobs
PrinterTaskStop = True
End Forall
Else
If Trim(wPrinter) = "" Then
Printer = Trim(PrinterDefautGet())
Else
Printer = Trim(wPrinter)
End If
Set vrPrinter = objWMIService.ExecQuery ({Select * from Win32_Printer Where Name = '}+Replace(Printer,"\","\\")+{'})
Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name)) = Ucase(Printer) Then
objPrinter.CancelAllJobs
PrinterTaskStop = True
End If
Exit Forall
End Forall

If PrinterTaskStop = False Then
'si jamais on ne trouve pas l'imprimante on passe toute les imprimante en revue
Set vrPrinter = Nothing
Set vrPrinter = objWMIService.ExecQuery ("Select * from Win32_Printer")
Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name))=Ucase(Printer) Then
objPrinter.CancelAllJobs
PrinterTaskStop = True
Exit Forall
End If
End Forall
End If
End If

Set vrPrinter = Nothing
Set objWMIService = Nothing

Exit Function
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
PrinterTaskStop = False
Exit Function
End Function[/syntax]
Dernière édition par Michael DELIQUE le 27 Juil 2009 à 08:16, édité 1 fois.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 24 Juil 2009 à 16:06

[syntax="LotusScript"]Function PrinterObject(wPrinter,wPrinterClass) As Variant

'renvois l'objet correspondant a l'imprimante

Dim objWMIService As Variant
Dim vrPrinter As Variant
Dim lstPrinter List As String
Dim Printer As String
Dim PrinterClass As String
Const Computer = "."

On Error Goto ErreurHandle

Set PrinterObject = Nothing

If Trim(wPrinter) = "" Then
Printer = Trim(PrinterDefautGet())
Else
Printer = Trim(wPrinter)
End If

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" +Computer + "\root\cimv2")
Select Case Ucase(Trim(wPrinterClass))
Case "C","CONFIG","CONFIGURATION","WIN32_PRINTERCONFIGURATION"
Set vrPrinter = objWMIService.ExecQuery ({Select * from Win32_PrinterConfiguration Where Name = '}+Replace(Printer,"\","\\")+{'})
PrinterClass = "C"
Case "P","PRINT","PRINTER","WIN32_PRINTER",""
Set vrPrinter = objWMIService.ExecQuery ({Select * from Win32_Printer Where Name = '}+Replace(Printer,"\","\\")+{'})
PrinterClass = "P"
Case Else
Error 9999,"Bad PrinterClass : "+wPrinterClass
Exit Function
End Select

Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name)) = Ucase(Printer) Then
Set PrinterObject = objPrinter
Exit Forall
End If
End Forall

Set vrPrinter = Nothing
Set objWMIService = Nothing

Exit Function
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
PrinterDeviceNameLength = 0
Exit Function
End Function[/syntax]
Dernière édition par Michael DELIQUE le 27 Juil 2009 à 08:18, édité 1 fois.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 27 Juil 2009 à 08:32

[syntax="LotusScript"]Function PrinterTestPage(wPrinter As String) As Integer
'imprime une page de teste

Dim objWMIService As Variant
Dim vrPrinter As Variant
Dim Printer As String
Const Computer = "."

On Error Goto ErreurHandle

PrinterTestPage = False

If Trim(wPrinter) = "" Then
Printer = Trim(PrinterDefautGet())
Else
Printer = Trim(wPrinter)
End If

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" +Computer + "\root\cimv2")
Set vrPrinter = objWMIService.ExecQuery ("Select * from Win32_Printer Where Name= '"+Replace(Printer,"\","\\")+"'")

Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name))=Ucase(Printer) Then
If Cint(objPrinter.PrintTestPage) = 0 Then
PrinterTestPage = True
End If
Exit Forall
End If
End Forall

If PrinterTestPage = False Then
'si jamais on ne trouve pas l'imprimante on passe toute les imprimante en revue
Set vrPrinter = Nothing
Set vrPrinter = objWMIService.ExecQuery ("Select * from Win32_Printer")
Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name))=Ucase(Printer) Then
If Cint(objPrinter.PrintTestPage) = 0 Then
PrinterTestPage = True
End If
Exit Forall
End If
End Forall
End If

Set vrPrinter = Nothing
Set objWMIService = Nothing

Exit Function
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
PrinterTestPage = False
Exit Function
End Function[/syntax]
Dernière édition par Michael DELIQUE le 03 Août 2009 à 07:45, édité 1 fois.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 27 Juil 2009 à 09:49

[syntax="LotusScript"]Function PrinterColorGet(wPrinter As String) As String

'renvois si l'imprimante est couleur o Noir & blanc

Dim objWMIService As Variant
Dim vrPrinter As Variant
Dim Printer As String
Const Computer = "."

On Error Goto ErreurHandle
PrinterColorGet = ""

If Trim(wPrinter) = "" Then
Printer = Trim(PrinterDefautGet())
Else
Printer = Trim(wPrinter)
End If

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" +Computer + "\root\cimv2")
Set vrPrinter = objWMIService.ExecQuery ({Select * from Win32_PrinterConfiguration Where Name = '}+Replace(Printer,"\","\\")+{'})

Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name)) = Ucase(Printer) Then
Select Case Trim(Cstr(objPrinter.color))
Case "1" 'Monochrome N&B
PrinterColorGet = "M"
Case "2" 'Couleur
PrinterColorGet = "C"
End Select
Exit Forall
End If
End Forall

If Trim(PrinterColorGet) <> "" Then
Set vrPrinter = Nothing
Set vrPrinter = objWMIService.ExecQuery ({Select * from Win32_PrinterConfiguration})
Forall objPrinter In vrPrinter
If Ucase(Trim(objPrinter.Name)) = Ucase(Printer) Then
Select Case Trim(Cstr(objPrinter.color))
Case "1" 'Monochrome N&B
PrinterColorGet = "M"
Case "2" 'Couleur
PrinterColorGet = "C"
End Select
Exit Forall
End If
End Forall
End If

Set vrPrinter = Nothing
Set objWMIService = Nothing

Exit Function
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
PrinterColorGet = ""
Exit Function
End Function[/syntax]
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar ngi » 04 Août 2009 à 08:39

Un grand merci pour ces supers fonctions. J'en avait un grand besoin.

Est ce que par hasard tu en aurais une qui permet de changer le format du papier (A4,A5, etc..).

Merci en tout cas

ngi
ngi
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 156
Inscrit(e) le : 01 Sep 2005 à 10:02
Localisation : Paris

Messagepar Michael DELIQUE » 04 Août 2009 à 08:47

désolé ça ne fait pas part des méthodes de la class win_32printer

mais bon je dis pas que ça ne soit pas impossible, tu sais ou chercher maintenant
Dernière édition par Michael DELIQUE le 03 Sep 2009 à 10:06, édité 1 fois.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy


Retour vers Divers