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.