Autore Topic: Mostrare unità  (Letto 1854 volte)

Offline Gratisweb

  • Grande Gambero
  • ***
  • Post: 186
    • Mostra profilo
Mostrare unità
« il: 13 Febbraio 2024, 09:21:40 »
Come si visualizzano le unità con gambas ?
Es: nel pc ci sono 2 HDD  o un SSD ecc..., come si visualizzano con gambas  ?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gratisweb

  • Grande Gambero
  • ***
  • Post: 186
    • Mostra profilo
Re:Mostrare unità
« Risposta #2 il: 13 Febbraio 2024, 12:13:06 »
Ho scritto questo codice

Library "libc:6"

Private Const HDIO_GET_IDENTITY As Integer = &030D

' int ioctl (int __fd, unsigned long int __request, ...)
' Perform the I/O control operation specified by REQUEST on FD.
Private Extern ioctl(__fd As Integer, __request As Long, hd_drived As Pointer) As Integer


Public Sub Main()

 Dim fl As File
 Dim hd As Pointer
 Dim err As Integer

' Elimina la protezione del file-device "/dev/sda".
' Si dovrà inserire la propria password di sistema.
 Shell "echo MIA_PASSWORD | sudo -S chmod 444 /dev/sda" Wait

 fl = Open "/dev/sda" For Read

 hd = Alloc(SizeOf(gb.Byte), 512)

 err = ioctl(fl.Handle, HDIO_GET_IDENTITY, hd)
 If err < 0 Then
   Free(hd)
   Error.Raise("Errore alla funzione 'ioctl()' !")
 Endif

 Print "\n\nCilindri:       "; Short@(hd + 2) & Space(16)
 Print "Heads:          "; Short@(hd + 6)
 Print "Settori:        "; Short@(hd + 12)
 Print "Num. seriale:   "; Trim(Left(String@(hd + 20), 20))
 Print "Firmware rev.:  "; Left(String@(hd + 46), 8)
 Print "Modello:        "; Left(String@(hd + 54), 40)

 Free(hd)
 fl.Close

End

Cerca la password di root ma mi serve uno script che non cerca nessuna password
« Ultima modifica: 13 Febbraio 2024, 19:02:42 da Gratisweb »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Mostrare unità
« Risposta #3 il: 14 Febbraio 2024, 08:00:07 »
 :ciao:
a me gira senza errori, ma non mi dà il tempo di inserire la password!
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Mostrare unità
« Risposta #4 il: 14 Febbraio 2024, 10:46:26 »
ma non mi dà il tempo di inserire la password!
 
La password va scritta lì nel codice al posto della parola "MIA_PASSWORD".
Volendola inserire invece durante il funzionamento de programma (...runtime), allora potremmo inserire prima della linea di comando di "Shell" l'iscruzione Input:
Codice: [Seleziona]
Input s
laddove l'identificatore "s" rappresenta una variabile di tipo "String".
Così, al posto di MIA_PASSWORD si inserirà la suddetta variabile.
Il processo del programma si ferma all'istruzione "Input" restando in attesa che nella console/terminale sia scritta la propria password di sistema e quindi la si passi premendo il tasto " Invio" della tastiera.
Ovviamente in ambiente grafico, anziché dell'istruzione "Input", si farà uso dell'istruzione "InputBox()".
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Mostrare unità
« Risposta #5 il: 14 Febbraio 2024, 18:30:33 »
Come sempre super esaustivo! :D
Grazie!
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Mostrare unità
« Risposta #6 il: 14 Febbraio 2024, 19:00:07 »
Come sempre super esaustivo!
''Non siamo qui a pettinar le bambole o ad asciugar gli scogli ! ''  ;D
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gratisweb

  • Grande Gambero
  • ***
  • Post: 186
    • Mostra profilo
Re:Mostrare unità
« Risposta #7 il: 01 Aprile 2024, 08:57:17 »
Per vedere le unità senza inserire nessuna password di root ho scritto questo codice ma va in errore e non capisco il perchè.....

Dim outp As System

' Esegue il comando e salva l'output in una variabile
outp = system("lsblk -o NAME,SIZE,TYPE | grep 'disk' | awk '{if ($2 != \"0B\") print $1}'")

' Controlla l'output per errori (facoltativo)
If outp Like "*error*" Then
  Print "Si è verificato un errore durante l'esecuzione del comando lsblk."
Else
  ' Stampa l'elenco delle unità
  Print outp
Endif

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Mostrare unità
« Risposta #8 il: 01 Aprile 2024, 15:31:01 »
va in errore e non capisco il perchè.....

Dim outp As System

' Esegue il comando e salva l'output in una variabile
outp = system("lsblk -o NAME,SIZE,TYPE | grep 'disk' | awk '{if ($2 != \"0B\") print $1}'")
Che cosa è system ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gratisweb

  • Grande Gambero
  • ***
  • Post: 186
    • Mostra profilo
Re:Mostrare unità
« Risposta #9 il: 01 Aprile 2024, 16:44:16 »
va in errore e non capisco il perchè.....

Dim outp As System

' Esegue il comando e salva l'output in una variabile
outp = system("lsblk -o NAME,SIZE,TYPE | grep 'disk' | awk '{if ($2 != \"0B\") print $1}'")
Che cosa è system ?

Sbagliato a scrivere, era shell

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Mostrare unità
« Risposta #10 il: 01 Aprile 2024, 22:41:11 »
Sbagliato a scrivere, era shell
Così funziona:
Codice: [Seleziona]
Public Sub Main()

  Dim s As String

  Shell "lsblk -o NAME,SIZE,TYPE | grep 'disk' | awk '{if ($2 != \"0B\") print $1}'" To s
 
  Print s

End
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »