Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: - 20 Marzo 2009, 11:51:56

Titolo: info
Inserito da: - 20 Marzo 2009, 11:51:56
Riesco a usare le api del sistema operativo con Gambas?

Per esempio io voglio spegnere il pc dal mio codice. Come si fa?  

Come mai non ce una documentazione decente di gambas da nessuna parte?
Titolo: Re: info
Inserito da: giulio - 20 Marzo 2009, 12:30:22
Puoi fare quello che vuoi, usando il comando SHELL:
Esempio: per chiudere una sessione o spegnere il computer usando
la finestra di logout di KDE:

SHELL "dcop ksmserver ksmserver logout 1 0 0" WAIT

Insomma, dipende da che sistema stai usando, che permessi hai et cetera et cetera.
Per spegnere il computer con halt, devi essere root o avere i permessi.
Titolo: Re: info
Inserito da: - 20 Marzo 2009, 12:55:46
Perciò non poso fare un unico programma sia per gnome, kde e windows?
Titolo: Re: info
Inserito da: giulio - 20 Marzo 2009, 13:02:35
Non puoi scrivere programmi Gambas per Windows. Per Gnome e KDE sì.
Titolo: Re: info
Inserito da: - 20 Marzo 2009, 13:07:46
grazie Giulio, molto utile, stavo valutando Gambas e no sembra per niente maile, pero la documentazione è praticamente inesistente.
Titolo: Re: info
Inserito da: Ceskho - 20 Marzo 2009, 16:33:49
Per spegnere il computer puoi sempre usare il camando da shell

SHELL "sudo shutdown -h now"
Titolo: Re: info
Inserito da: - 20 Marzo 2009, 16:44:59
e non mi chiederà la password di root?
Titolo: Re: info
Inserito da: Ceskho - 20 Marzo 2009, 16:59:41
certo..se cerchi nel forum è già stato visto come restituire la password di root al terminale....:D
Titolo: Re: info
Inserito da: md9327 - 20 Marzo 2009, 17:06:05
Se opportunamente configurato, "sudo" è l'unico comando che permette ad utenti diversi da "root" di avviare i programmi esclusivi di root.
Diversamente da windows, su linux l'amministratore è veramente protetto e l'unico a fare determinate cose; ovviamente se si gioca sui permessi si può dare l'accesso a tutti, ma questo è un'altro paio di maniche, e la responsabilità è dell'utente che lo fà...

Nota: per comandi esclusivi, si intendono tutti quei programmi che modificano la configurazione dell'hardware e del sitema, compreso lo shutdown (spegnimento) del sistema; essendo linux un sistema multiutente, questo non deve essere fatto, se non espressamente voluto dall'amministrazione a scopo manutentivo.
Titolo: Re: info
Inserito da: fsurfing - 20 Marzo 2009, 19:34:03
puoi spegere il pc con questo comando :

Citazione
   
 SHELL "echo " & password & " | sudo -S shutdown  -h -P -v now"


dove la variabile password contiene la password amministratore

io lo usato nel programma feabar in area download (messaggio pubblicitario :) )
Titolo: Re: info
Inserito da: giulio - 21 Marzo 2009, 13:23:15
Citazione

inviato da  fsurfing  su  20/3/2009 18:34:03

puoi spegere il pc con questo comando :

Citazione:


    SHELL "echo " & password & " | sudo -S shutdown -h -P -v now"



dove la variabile password contiene la password amministratore

io lo usato nel programma feabar in area download (messaggio pubblicitario :) )


Questo comando funziona solo sulle distro Ubuntu-derivate. Purtroppo
da quando Ubuntu ha scelto di rimuovere root e usare "sudo" per i compiti di amministrazione anziché il classico "su", si generano questi equivoci. Per esempio su Slackware quel comando non ha senso se il file /etc/sudoers non è configurato a dovere. Sarebbe bene ricordare sempre che Ubuntu è solo una distribuzione GNU/linux e non è GNU/linux. Così, già Gambas è penalizzato perché non è multipiattaforma e in più gli tocca fare lo slalom anche dentro il mondo GNU/linux. Scusate lo sfogo, ma da vecchio utente Slackware mi disturba un po' che neo-utenti, riviste, forum pensino che "sudo" sia la regola dei sistemi GNU/linux. "sudo" è solo l'eccezione usata abilmente da Ubuntu per rendere GNU/linux più digeribile agli ex
windowsiani. E a me va anche bene, però quando in forum di programmazione di
Gambas si dice che si deve usare

SHELL "echo " & password & " | sudo -S shutdown -h -P -v now"

per spegnere il computer, si dovrebbe mettere come postilla:

1) il comando funziona sulle distro derivate da Ubuntu
2) sulle altre distro il file sudoers deve essere configurato

notate anche voi che pure in abito GNU/linux con questa storia di "sudo"
un programmatore Gambas deve prevedere anche su quale distribuzione girerà
la sua applicazione. Scusate lo sfogo. Ciao a tutti.
Titolo: Re: info
Inserito da: Ceskho - 21 Marzo 2009, 14:16:01
Non capisco il tuo sfogo e ti spiego anche il perchè:

Ognuno di noi abbraccia una distro invece di altre per un qualsiasi motivo che può essere di qualunque tipo. Se io ho ubuntu e sviluppo con Gambas posso suggerire agli altri utenti metodi che io stesso ho usato e che funzionano. Ovviamente se l'utente che pone la domanda conosce il suo sistema saprà che su di esso questo o quel comando non può funzinare.

Se ad esempio tu avessi fatto la stessa domanda ed io ti avessi risposto come ha fatto fsurfing allora sarebbe stato tuo dovere dire "Mi spiace ma uso slack è questo non si può fare"...io non posso legere nel pensiero di chi pone le domande e sapere che sistema usa...ti posto il mio metodo e se va bene tanto di guadagnato altrimenti servirà ad altri utenti che giungeranno qui mediante una ricerca...

La mia risposta non è un'accusa, sia chiaro..è solo il mio modesto unto di vista...:D
Titolo: Re: info
Inserito da: giulio - 21 Marzo 2009, 16:52:42
Ieri hai scritto:

Citazione

Ceskho ha scritto:
Per spegnere il computer puoi sempre usare il camando da shell

SHELL "sudo shutdown -h now"


Neanche io (neo-utente) posso leggere nel tuo pensiero e non so
su che sistema il tuo suggerimento funzioni. Se tu avessi scritto:

Citazione

Io uso Ubuntu e su Ubuntu per spegnere il computer puoi fare:

SHELL "sudo shutdown -h now"

sarebbe stato più corretto (anche per future consultazioni da parte di altri neofiti).

Per esempio, se guardi in homepage Leo spiega come rendere
modificabili gli esempi di Gambas, ma correttamente aggiunge
che l'indicazione riguarda Ubuntu. Dico solo questo: questo è un forum di Gambas,
non di Gambas su Ubuntu e quindi quando si danno suggerimenti bisognerebbe
ricordarsi (come ha fatto Leo) di segnalare il sistema su cui si lavora. Tutto qui. Ciao.
Titolo: Re: info
Inserito da: Ceskho - 21 Marzo 2009, 17:47:50
Nessuno dice che questo dia un forum di "gambas su ubuntu" ma se una buona parte degli utenti ha ubuntu non penso sia colpa nostra....Uno aiuta come può...Io ho un sistema operativo e posso suggerirti come agire per quello specifico...
Titolo: Re: info
Inserito da: - 21 Marzo 2009, 18:14:18
Ragazzi suvvià, facciamo l'amore e non la guerra  :lol:

Comunque neanche a me piace ubuntu kubuntu ecc ecc mi ricorda troppo windows   come pesantezza per i vecchi pc, tempi di installazione  ....
Titolo: Re: info
Inserito da: fsurfing - 21 Marzo 2009, 18:21:00
:-o

la prossima volta mi taglio le dita invece di scrivere una risposta
Titolo: Re: info
Inserito da: Ceskho - 21 Marzo 2009, 19:48:24
Citazione

giac_fab ha scritto:
Ragazzi suvvià, facciamo l'amore e non la guerra  :lol:

Comunque neanche a me piace ubuntu kubuntu ecc ecc mi ricorda troppo windows   come pesantezza per i vecchi pc, tempi di installazione  ....


Il bello delle discussioni è che discute....:-d...altrimenti è noioso se uno dice una cosa e tutti gli dicono "è vero!"

comunque ubuntu i installa in 15 minuti... :nulla:
Titolo: Re: info
Inserito da: - 21 Marzo 2009, 20:51:05
Beh con un pc di ultima generazione sicuramente
Vorrei vedere con il portatile 1000 Hz di 6-7 anni fà con cui scrivo ....
Con la slax che uso ci metto 5 minuti....
Titolo: Re: info
Inserito da: leo72 - 22 Marzo 2009, 16:45:25
"State bbboni"....

Ubuntu non è Linux ma nessun'altra distribuzione lo è. Sudo è senz'altro un "pastrocchio" superinflazionato da Canonical per rendere Ubuntu facile nel suo approccio. E, volenti o nolenti, il risultato è stato positivo e grazie ad Ubuntu tantissimi utenti adesso nel mondo usano un sistema Linux quando, forse senza questa bistrattata distro, non lo avrebbero fatto. Ubuntu ha reso le cose facili, e le cose facili sono quelle che cercano la stragrande maggioranza degli utenti medi (Windows lo ha dimostrato nel corso degli anni). Questo è un merito che ad Ubuntu va riconosciuto.

Detto questo, per spegnere un sistema Linux dipende anche dalle impostazioni del sistema stesso. Oggigiorno qualunque distro abilita l'utente per farlo: basti pensare al fatto che chiunque può spegnere/riavviare il PC con l'apposita utility del proprio desktop manager. Da terminale è un po' più difficile ma basta inserire il proprio utente in /etc/shutdown.allow (mi pare di ricordare) che si può spegnere il PC anche come utente normale.