Differenze tra le versioni di "Individuare le stampanti presenti nel proprio sistema"
Da Gambas-it.org - Wikipedia.
(Nuova pagina: Se si vogliono individuare le stampanti riconosciute e presenti nel proprio sistema, è possibile interrogare i file, creati per ciascuna di esse, nella cartella: ''/etc/cups/ppd/'' |[...) |
|||
Riga 12: | Riga 12: | ||
Next | Next | ||
+ | '''End''' | ||
+ | |||
+ | |||
+ | Se, poi, si desidera conoscere la stampante impostata come predefinita (default), potremo utilizzare quest'altro codice: | ||
+ | '''Public''' Sub Button1_Click() | ||
+ | |||
+ | Public Sub Button1_Click() | ||
+ | |||
+ | Dim fl As File | ||
+ | Dim s As String | ||
+ | Dim ss As New String[] | ||
+ | Dim j As Byte | ||
+ | |||
+ | |||
+ | <FONT color=#006400>' ''E' necessario avere il pieno accesso alla lettura del seguente file:''</font> | ||
+ | Desktop.RunAsRoot("chmod 4777 /etc/cups/printers.conf.O ") | ||
+ | |||
+ | <FONT color=#006400>' ''Resta in attesa fino a che i permessi del file in questione non saranno cambiati:''</font> | ||
+ | Do | ||
+ | Wait 0.01 | ||
+ | Loop Until Stat("/etc/cups/printers.conf.O").Auth = "rwsrwxrwx" | ||
+ | |||
+ | |||
+ | fl = Open "/etc/cups/printers.conf.O" For Input | ||
+ | |||
+ | While Not Eof(fl) | ||
+ | Input #fl, s | ||
+ | <FONT color=#006400>' ''Carichiamo nell'array di tipo stringa tutte le informazioni,'' | ||
+ | ' ''suddivise parola per parola, presenti nel file:''</font> | ||
+ | ss.Add(Trim(s)) | ||
+ | Wend | ||
+ | |||
+ | |||
+ | For j = 0 To ss.Max | ||
+ | If ss[j] = "<DefaultPrinter" Then | ||
+ | Print "La stampante predefinita è: "; Replace(ss[j + 1], ">", "") | ||
+ | Exit | ||
+ | Endif | ||
+ | Next | ||
+ | |||
+ | '''End''' | ||
+ | |||
'''End''' | '''End''' | ||
Versione delle 16:44, 6 feb 2013
Se si vogliono individuare le stampanti riconosciute e presenti nel proprio sistema, è possibile interrogare i file, creati per ciascuna di esse, nella cartella: /etc/cups/ppd/ |1|. Ciascuno di tali file riporta il nome della stampante, alla quale si riferisce, nonché l'estensione .ppd. Pertanto, il compito è quello di prendere il solo nome del file, che corrisponde anche alla singola stampante, escludendo l'estensione.
Potremo dunque utilizzare questo semplice codice:
Public Sub Button1_Click() Dim stampante As String For Each stampante In Dir("/etc/cups/ppd/", "*.ppd").Sort() Print File.BaseName(stampante) Next End
Se, poi, si desidera conoscere la stampante impostata come predefinita (default), potremo utilizzare quest'altro codice:
Public Sub Button1_Click()
Public Sub Button1_Click()
Dim fl As File Dim s As String Dim ss As New String[] Dim j As Byte
' E' necessario avere il pieno accesso alla lettura del seguente file: Desktop.RunAsRoot("chmod 4777 /etc/cups/printers.conf.O ") ' Resta in attesa fino a che i permessi del file in questione non saranno cambiati: Do Wait 0.01 Loop Until Stat("/etc/cups/printers.conf.O").Auth = "rwsrwxrwx" fl = Open "/etc/cups/printers.conf.O" For Input While Not Eof(fl) Input #fl, s ' Carichiamo nell'array di tipo stringa tutte le informazioni, ' suddivise parola per parola, presenti nel file: ss.Add(Trim(s)) Wend For j = 0 To ss.Max If ss[j] = "<DefaultPrinter" Then Print "La stampante predefinita è: "; Replace(ss[j + 1], ">", "") Exit Endif Next End
End
Note
[1] Testato su Ubuntu.