Registrato: 15/09/09 09:58 Messaggi: 718 Residenza: Darfo Boario Terme (BS)
Inviato: 15 Dic 2010 14:07 Oggetto: smettila DI URLARE !!!
A tutti capita a volte di dover lavorare (con privilegi da utonto) in postazioni pc che hanno pochissimi programmi installati... Perchè tanto ormai i programmi sono obsoleti, sono sufficienti le webapp!
Come si può fare, ad esempio, a trasformare i caratteri da maiuscola a minuscola nel caso qualche urlatore ci abbia girato un documento che ci PERFORA I TIMPANI?
Ma senza editor, e senza suite office/openoffice...
Ecco le operazioni da fare:
1) Start -> Esegui -> Notepad (insomma aprite il blocco note)
2) Incollate all'interno del blocco note questo codice
Codice:
'Creiamo l'oggetto con cui opereremo sul File System
Set fso = CreateObject("Scripting.FileSystemObject")
'Controlliamo se il la variabile d'ambiente TMP ha o meno uno slash in fondo
If Right(fso.GetSpecialFolder(2),1) = "\" Then
'Creo il percorso
s_PercorsoScrivi = fso.GetSpecialFolder(2) & "minuscolo.txt"
Else
'Creo il percorso
s_PercorsoScrivi = fso.GetSpecialFolder(2) & "\minuscolo.txt"
End If
'Creo il file di richiesta contenuto
fso.CreateTextFile(s_PercorsoScrivi, True).Write "Inserisci qui il testo da convertire in minuscolo, quindi chiudi il documento salvandolo, la conversione avverrà istantaneamente"
'Creo l'oggetto di shell
Set Shell = CreateObject("Wscript.shell")
'Apro il file
Shell.Run "notepad " & s_PercorsoScrivi, 1 ,true
'Leggo il testo del file convertendolo direttamente in minuscolo
s_TestoFile = Lcase(fso.OpenTextFile(s_PercorsoScrivi).ReadAll)
'Ricreo il file scrivendo il contenuto in minuscolo
fso.CreateTextFile(s_PercorsoScrivi, True).Write s_TestoFile
'Apro il file
Shell.Run "notepad " & s_PercorsoScrivi, 1 ,true
'Elimino il file di appoggio
fso.DeleteFile s_PercorsoScrivi
3) Salvate il file dandogli estensione vbs (ovviamente dovete avere le estensioni dei file visibili)
Una volta creato il file vbs (che non andrà più modificato fatto una volta è per sempre) è sufficiente aprirlo con un doppio click e seguire le istruzioni.
Registrato: 05/07/05 21:42 Messaggi: 19508 Residenza: Sono brusco con voi solo perchè il tempo è a sfavore. Penso in fretta, quindi parlo in fretta
Inviato: 17 Dic 2010 00:36 Oggetto:
ma è semplicemente fantastico !!!
(e se io ti scrivo in italiano delle cose semplici che voglio che faccia il mio pc, tu me le puoi tradurre in modo che il pc le esegua?)
Registrato: 15/09/09 09:58 Messaggi: 718 Residenza: Darfo Boario Terme (BS)
Inviato: 17 Dic 2010 12:08 Oggetto:
In generale i sistemi operativi moderni (anche se comodi lungi da me l'affermare il contrario) hanno tolto sempre più il controllo della macchina all'utente e vedere che si riesce lo stesso ad aggirare certi limiti da soddisfazione e su questo che in genere si basa la soddisfazione del programmatore.
mad, volevi che traducessi?
Start->Esegui->Notepad
Codice:
Do While True
If MsgBox("Credi che il silvietto sia un nano malefico", 32 Or 4,"Prima semplice domanda") = 6 Then
If MsgBox("Credi che Bossi ce l'abbia duro?", 32 Or 4,"Seconda domanda") = 7 Then
If MsgBox("Secondo te maddina è più pericolosa di Chuck Norris?", 32 Or 4,"Ne va della tua vita...") = 6 Then
MsgBox "Vedo che sei una persona saggia, ora va e condividi la tua saggezza col mondo", 64 ,"La saggezza è un dono prezioso"
Exit Do
Else
MsgBox "AHHHHHHHH, NO NO NO NO, ricorda l'equazione elementare: " & Chr(10) & Chr(13) & Chr(10) & Chr(13) & "Prima di andare a dormire i bambini controllano che nell'armadio non ci sia l'uomo nero." & Chr(10) & Chr(13) & "Prima di andare a dormire l'uomo nero controlla che nell'armadio non ci sia Chuk Norris." & Chr(10) & Chr(13) & "Prima di andare a dormire Chuck Norris controlla che nell'armadio non ci sia madvero....." & Chr(10) & Chr(13) & Chr(10) & Chr(13) & "Veloce figliolo rifai il test e spera nella sua magnanimità!!!!!", 16 ,"DANGER DANGER DANGER"
End If
Else
MsgBox "Dai su una briciola di realismo.... Riprova va....", 16 ,"L'ottimismo è il profumo della vita"
End If
Else
MsgBox "Questo programma richiede risposte veritiere, per l'amor di Dio questa era davvero facile! Riprova va....", 16 ,"Follia pura"
End if
Loop
File->Salva con nome->SantaVerita.vbs
La cosa migliore è che senza una certa conoscenza di informatica il programma non può essere terminato neanche da TaskManager, perchè non appare nelle applicazioni in esecuzione....
Registrato: 15/09/09 09:58 Messaggi: 718 Residenza: Darfo Boario Terme (BS)
Inviato: 17 Dic 2010 12:28 Oggetto:
madvero ha scritto:
(e se io ti scrivo in italiano delle cose semplici che voglio che faccia il mio pc, tu me le puoi tradurre in modo che il pc le esegua?)
Si certo maddina, se riesco volentieri, sopratutto se la richiesta è in italiano, il peggior incubo del programmatore è il commitente che non sa cosa vuole e che si spiega col c*lo....
Registrato: 05/07/05 21:42 Messaggi: 19508 Residenza: Sono brusco con voi solo perchè il tempo è a sfavore. Penso in fretta, quindi parlo in fretta
Inviato: 17 Dic 2010 23:58 Oggetto:
vediamo...
do while true potrebbe stare a significare che le istruzioni sono strutturare a partire dalla risposta positiva.
già mi stanno girando a vortice perchè con questo non riuscirò a capire come fare il boxino con le opzioni yes, perhaps, no.
e manco mi ricordo come si scrive forse in inglese.
le "virgolette" in coda alla stringa non sono le domande ma il titolo del boxino.
34 or 4 mi sono oscure.
è lampante che siano yes e no, ma non capisco perchè a 34 corrisponda yes e a 4 no.
forse è una convenzione fatta così punto e basta, tipo il <b> che sta per bold e fa il grassetto.
& Chr(10) & Chr(13) -> lo piglio per <br />
= 6 Then oppure = 7 Then -> lo piglio per se falso vai alla riga numero 6, numero 7... ok, faccio quante domande voglio.
vabbè, loop è ovvio, si capisce idem per exit do o gli else o gli if.
il guaio è come vada montata la struttura in sequenza. chissà se funziona tipo html con l'annidamento, e grazie a dio che c'è l'identazione anche nei vbs.
devo ragionarci ancora un po'.
il 64 e il 16 mi sono assolutamente oscuri.
presumo che il 16 lanci il loop e il 64 avvalori l'end if, però non comprendo l'abbinamento.
ok, a ragionarci così dal niente non arrivo da nessuna parte.
provo un po'.
Registrato: 15/09/09 09:58 Messaggi: 718 Residenza: Darfo Boario Terme (BS)
Inviato: 18 Dic 2010 00:33 Oggetto:
Codice:
'Allora questa riga comincia con un apostofro (apice in gergo), significa che è una riga di commento , inutile ai fini della programmazione, ma utile per spiegare le istruzioni, tutte le spiegazioni che inserirò d'ora in poi saranno commenti
'Elenco costanti: ora scrivo queste "costanti" ovvero dirò al programma che quando incontra la parola in questione la deve sostituire con il valore relativo (serve a essere più chiari o a cambiare un valore in tutto il programma senza fare mille modifiche)
'Questa istruzione significa "Esegui queste istruzioni continuamente fino a che la condizione è vera, nel mio caso per attivare un loop infinito al posto di mettere una condizione ho messo direttamente True"
Do While True
If MsgBox("Credi che il silvietto sia un nano malefico", n_FinestraIconcinaPuntoDomanda Or n_FinestraSiNo,"Prima semplice domanda") = n_FinestraRispostaSi Then
If MsgBox("Credi che Bossi ce l'abbia duro?", n_FinestraIconcinaPuntoDomanda Or n_FinestraSiNo,"Seconda domanda") = n_FinestraRispostaNo Then
If MsgBox("Secondo te maddina è più pericolosa di Chuck Norris?", n_FinestraIconcinaPuntoDomanda Or n_FinestraSiNo,"Ne va della tua vita...") = n_FinestraRispostaSi Then
MsgBox "Vedo che sei una persona saggia, ora va e condividi la tua saggezza col mondo", n_FinestraIconcinaPuntoEsclamativo Or n_FinestraSoloOk,"La saggezza è un dono prezioso"
'Ok ha risposto a tutte le domande gli dico di uscire
Exit Do
Else
MsgBox "AHHHHHHHH, NO NO NO NO, ricorda l'equazione elementare: " & s_VaACapo & s_VaACapo & "Prima di andare a dormire i bambini controllano che nell'armadio non ci sia l'uomo nero." & s_VaACapo & "Prima di andare a dormire l'uomo nero controlla che nell'armadio non ci sia Chuk Norris." & s_VaACapo & "Prima di andare a dormire Chuck Norris controlla che nell'armadio non ci sia madvero....." & s_VaACapo & s_VaACapo & "Veloce figliolo rifai il test e spera nella sua magnanimità!!!!!", n_FinestraIconcinaPuntoErrore ,"DANGER DANGER DANGER"
End If
Else
MsgBox "Dai su una briciola di realismo.... Riprova va....", n_FinestraIconcinaPuntoErrore ,"L'ottimismo è il profumo della vita"
End If
Else
MsgBox "Questo programma richiede risposte veritiere, per l'amor di Dio questa era davvero facile! Riprova va....", n_FinestraIconcinaPuntoErrore ,"Follia pura"
Registrato: 05/07/05 21:42 Messaggi: 19508 Residenza: Sono brusco con voi solo perchè il tempo è a sfavore. Penso in fretta, quindi parlo in fretta
Inviato: 18 Dic 2010 01:16 Oggetto:
qual è il valore per yes_no_perhaps
seriamente... vai a capire dove cavolo rimanda l'annulla.
comunque, domanda seria: com'è fatta la struttura dei vbs?
(la pagina che hai linkato è preziosissima, ma è per addetti ai lavori. leggi: non si capisce molto)
mi spiego meglio: una vita fa ho studiato il c++ e il matlab, ma mo' non mi ricordo assolutamente più niente.
però voglio capire il codice.
non saper fare, ma soltanto capire.
la struttura è tipo html? nel senso... prima apri la pagina <html>, poi apri l'<head> chiudi l'</head>, apri e chiudi il body <body></body>, chiudi l'</html>?
forse non mi sono spiegata.
riprendo il tuo vbs che forse ci riesco meglio.
gli if MsgBox vanno per forza in fila in alto, o ci posso schiaffare in mezzo un MsgBox + Exit Do ?
Registrato: 05/07/05 21:42 Messaggi: 19508 Residenza: Sono brusco con voi solo perchè il tempo è a sfavore. Penso in fretta, quindi parlo in fretta
Inviato: 18 Dic 2010 01:28 Oggetto:
promemoria per me:
Codice:
'Allora questa riga comincia con un apostofro (apice in gergo), significa che è una riga di commento , inutile ai fini della programmazione, ma utile per spiegare le istruzioni, tutte le spiegazioni che inserirò d'ora in poi saranno commenti
'Elenco costanti: ora scrivo queste "costanti" ovvero dirò al programma che quando incontra la parola in questione la deve sostituire con il valore relativo (serve a essere più chiari o a cambiare un valore in tutto il programma senza fare mille modifiche)
'Questa istruzione significa "Esegui queste istruzioni continuamente fino a che la condizione è vera, nel mio caso per attivare un loop infinito al posto di mettere una condizione ho messo direttamente True"
Do While True
If MsgBox("A", n_FinestraIconcinaPuntoDomanda Or n_FinestraSiNo,"titA") = n_FinestraRispostaSi Then
If MsgBox("B", n_FinestraIconcinaPuntoDomanda Or n_FinestraSiNo,"titB") = n_FinestraRispostaNo Then
If MsgBox("C", n_FinestraIconcinaPuntoDomanda Or n_FinestraSiNo,"titC") = n_FinestraRispostaSi Then
MsgBox "exit D", n_FinestraIconcinaPuntoEsclamativo Or n_FinestraSoloOk,"titD"
'Ok ha risposto a tutte le domande gli dico di uscire
Exit Do
Else
MsgBox "E", n_FinestraIconcinaPuntoErrore ,"titE"
End If
Else
MsgBox "F", n_FinestraIconcinaPuntoErrore ,"titF"
End If
Else
MsgBox "G", n_FinestraIconcinaPuntoErrore ,"titG"
End if
Loop
Prossimamente (quando ci avrò ragionato con calma) domande chiare con risposte secche.
devo meditarci sopra.
Registrato: 15/09/09 09:58 Messaggi: 718 Residenza: Darfo Boario Terme (BS)
Inviato: 18 Dic 2010 01:28 Oggetto:
madvero ha scritto:
qual è il valore per yes_no_perhaps
seriamente... vai a capire dove cavolo rimanda l'annulla.
Via vbs? Un suicido con ettolitri di codice...
Via vb6? Neanche 2 righe di codice....
madvero ha scritto:
comunque, domanda seria: com'è fatta la struttura dei vbs?
(la pagina che hai linkato è preziosissima, ma è per addetti ai lavori. leggi: non si capisce molto)
mi spiego meglio: una vita fa ho studiato il c++ e il matlab, ma mo' non mi ricordo assolutamente più niente.
però voglio capire il codice.
non saper fare, ma soltanto capire.
la struttura è tipo html? nel senso... prima apri la pagina <html>, poi apri l'<head> chiudi l'</head>, apri e chiudi il body <body></body>, chiudi l'</html>?
forse non mi sono spiegata.
No, ti sei spiegata invece, allora innanzi tutto l'HTML non è un vero e proprio linguaggio di programmazione, diciamo che è più un linguaggio di "impaginazione", il c invece è un linguaggio di programmazione compilato ovvero tu scrivi una serie di istruzioni, poi le dai in pasto a un compilatore che crea l'exe e ti scrive il codice macchina, con il vantaggio dell'incremento di prestazioni, del codice chiuso e quantaltro.
Nel caso del vbs invece si parla di linguaggio interpretato (esattamente come per il Java), tu scrivi delle istruzioni e le salvi in un file di testo che resta tranquillamente modificabile e in piena vista, poi quando lo apri c'è un altro programma che esegue le istruzioni scritte lì, un pò come quando fai doppio click su un file di word per capirci.
Il vbs è il linguaggio interpretato erede del vb, e non richiede sostanzialmente strutture, esattamente come non richiede la dichiarazione delle variabili, per capirci megio questo codice
Codice:
Msgbox "Ciao"
Funziona tranquillamente.
madvero ha scritto:
riprendo il tuo vbs che forse ci riesco meglio.
gli if MsgBox vanno per forza in fila in alto, o ci posso schiaffare in mezzo un MsgBox + Exit Do ?
Dipende dal risultato che vuoi ottenere, l'Exit Do puoi metterlo dove vuoi.
Registrato: 05/07/05 21:42 Messaggi: 19508 Residenza: Sono brusco con voi solo perchè il tempo è a sfavore. Penso in fretta, quindi parlo in fretta
Inviato: 18 Dic 2010 01:59 Oggetto:
beh, per il momento un bel po' di cose le ho capite.
solo una chiosa (per ora): con html io non intendevo linguaggio di programmazione. volavo molto più terra terra.
intendevo una roba che se io apro il notepad e so che siglescrivere, vengono fuori delle robe che voglio io.
cioè... io dico al computer
Citazione:
mettimi in grassetto le parole che seguono: ...
con la sigla giusta e il computer lo fa.
non è un programma, è il browser che capisce che cosa fare.
non è un linguaggio... è una traduzione !!!
posso mettere tutti gli exit do che voglio o solo uno?
presumo solo uno.
Registrato: 15/09/09 09:58 Messaggi: 718 Residenza: Darfo Boario Terme (BS)
Inviato: 18 Dic 2010 02:22 Oggetto:
Ariciao maddina
Ora provo a spiegarti passo passo come funziona la MsgBox:
Allora senza incasinarmi con termini tecnici la MsgBox farà apparire una finestrella che avrà il compito di informare l'utente di qualcosa, oppure di avere dall'utente una risposta a una domanda precisa (vedremo poi come impostarla)
Allora la maniera più semplice in cui possiamo usare la Msgbox è questa
Codice:
MsgBox "Ciao"
Come vedi ho scritto il comando MsgBox e la parola ciao racchiusa fra apici doppi, perchè in vbs tutte le stringhe (che significa frasi o insieme di caratteri) in vbs devono essere racchiuse fra apici doppi, in caso fosse necessario scrivere un apice doppio basta raddoppiarlo, ad esempio per fa apparire:
Mi ha urlato: "Vai Via!"
Bisogna scrivere
Codice:
MsgBox "Mi ha urlato: ""Vai Via!"""
Infine per mandare a capo la frase la cosa si complica un pò, perchè bisogna sfruttare i relativi codici ascii che sono il 10 (che manda a capo) e il 13 (che manda tutto a sinistra).
Andiamo per gradi, per attaccare due frasi separate è necessario utilizzare la e commerciale (&), ad esempio
Codice:
MsgBox "Frase1" & " Frase2"
Mentre per trasformare il numero della tabella Asci nel relativo carattere bisogna utilizzare la funzione Chr, che funziona così
Codice:
Chr(Valore)
Provate a scrivere
Codice:
MsgBox Chr(67)
Adesso proviamo a concatenare
Codice:
MsgBox Chr(67) & Chr(73) & Chr(65) & Chr(79)
Adesso proviamo finalmente a andare a capo
Codice:
MsgBox "Adesso vado a capo" & Chr(10) & Chr(13) & "NaNANANA sono andato a capo"
Perfetto abbiamo concluso la prima parte ora passiamo alla seconda
La frase che appare nella finestra è un "parametro" della funzione MsgBox, ma non è l'unico parametro settabile, per la precisione la MsgBox ha 3 parametri settabili che sono:
1) Testo (il parametro che abbiamo già visto)
2) Tipo finestra (iconcina, numero e tipo di pulsanti e altro che non tratteremo qui)
3) Titolo finestra (quello che viene scritto nella parte alta della finestra per capirci)
Allora analizziamo il parametro 2, il parametro 2 è un numero che può anche essere composto in maniera binaria da più numeri (una somma algebrica normalissima), comunque tanto per cominciare dobbiamo imparare a impostarlo questo parametro, per farlo è sufficente inserire una virgola dopo il testo, proviamo con lo 0
Codice:
MsgBox "Proviamo", 0
Lo sò non è cambiato nulla perchè lo 0 è il default, cioè è il valore che verrà utilizzato se non si scrive nulla come avevamo fatto finora, proviamo ora così
Codice:
MsgBox "Verrà visualizzato solo il pulsante OK.", 0
MsgBox "Verranno visualizzati i pulsanti OK e Annulla.", 1
MsgBox "Visualizza i pulsanti Interrompi, Riprova e Ignora.", 2
MsgBox "Verranno visualizzati i pulsanti Sì, No e Annulla.", 3
MsgBox "Verranno visualizzati i pulsanti Sì e No.", 4
MsgBox "Verranno visualizzati i pulsanti Riprova e Annulla.", 5
Bene ora vediamo a inserire le icone
Codice:
MsgBox "Verrà visualizzata l'icona del messaggio critico.", 16
MsgBox "Verrà visualizzata l'icona della richiesta di avviso.", 32
MsgBox "Verrà visualizzata l'icona del messaggio di avviso.", 48
MsgBox "Verrà visualizzata l'icona del messaggio informativo.", 64
A questo punto proviamo un pò a combinarli, ma come si fa? Semplicemente sommandoli algebricamente o in maniera binaria, (il perchè è un pò complesso da spiegare adesso):
Codice:
MsgBox "Erroraccio, puoi solo annullare l'operazione o riprovare", 16 Or 5
MsgBox "Allora secondo te sono bello o no?.", 32 Or 4
MsgBox "Attenzione è successo qualcosa di strano che si fa?.", 48 + 2
MsgBox "Perfetto abbiamo finito.", 64 + 0
Come potete vedere nei primi due casi ho usato un Or per combinare i due valori, nel secondo caso il + perchè si ecquivalgono per motivi che non ho tempo di spiegare, comunque come ulteriore riprova:
Codice:
MsgBox "Erroraccio, puoi solo annullare l'operazione o riprovare", 21
MsgBox "Allora secondo te sono bello o no?.", 36
MsgBox "Attenzione è successo qualcosa di strano che si fa?.", 50
MsgBox "Perfetto abbiamo finito.", 64
Provate questo codice e vedrete che funziona alla perfezione, a livello di "eleganza" e chiarezza è comque preferibe la prima forma usata questa:
Codice:
MsgBox "Erroraccio, puoi solo annullare l'operazione o riprovare", 16 Or 5
Ok, per finire occupiamoci di aggiungere il titolo alla finestra, la cosa è semplicissima, mettiamo un altra virgola per comunicare che stiamo parlando di un altro parametro e inseriamo il titolo come stringa:
Codice:
MsgBox "Ei, guarda un pò qua sopra", 64 Or 0, "TITOLO TITOLO TITOLO"
Ok, terza e ultima parte, nelle finestrelle a volte èpresente più di un tasto e viene fatta una domanda, come posso sapere quale tasto l'utente preme? Allora, io parlando della MsgBox ho sempre parlato di funzione, ovvero di un metodo che restituisce un risultato, mentre finora non abbiamo visto nulla di tutto ciò, questo perchè la MsgBox come tantissi altri metodi può funzionare in entrambe le maniere, sia come funzione che come procedura (ovvero un metodo che non restituisce nulla, come abbiamo fatto noi finora), in casi come questi per distinguere se si tratta di funzione o procedura si fa così:
Se l'elenco dei parametri è racchiuso fra parentesi tonde stiamo parlando di una funzione, in caso contrario stiamo parlando si una procedura, quindi
MsgBox "Ciao"
Funziona come una procedura, mentre
MsgBox ("Ciao")
Funziona come una funzione
La funzione MsgBox restituisce un numero che identifica il tasto premuto, per la precisione:
OK 1
Annulla 2
Interrompi 3
Riprova 4
Ignora 5
Sì 6
No 7
Come esempi finali utilizzero un If e un Select Case (anche per questi non ho tempo di spiegarli ora)
Codice:
If MsgBox("Allora hai capito come funziona la MsgBox?", 32 Or 4, "Spiegazione MsgBox") = 6 Then
MsgBox "Ok Bravissima!!!!!", 64 Or 0, "Spiegazione riuscita!!!!"
Else
MsgBox "Non preoccuparti, rileggi o chiedi, vedrai che ci riuscirai", 64 Or 0, "Riprova dai"
End If
Codice:
Select Case MsgBox("Allra hai capito come funziona la MsgBox?", 32 Or 3, "Spiegazione MsgBox")
Case 6
MsgBox "Ok Bravissima!!!!!", 64 Or 0, "Spiegazione riuscita!!!!"
Case 7
MsgBox "Non preoccuparti, rileggi o chiedi, vedrai che ci riuscirai", 64 Or 0, "Riprova dai"
Case 2
MsgBox "WTF? Come annulla? Cosa vuol dire annulla?", 32 Or 0, "Mhh.... Rispondi meglio va"
Tutti i fusi orari sono GMT + 2 ore Vai a 1, 2Successivo
Pagina 1 di 2
Non puoi inserire nuovi argomenti Non puoi rispondere a nessun argomento Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi votare nei sondaggi