Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-09-2007, 00:13   #1
Mancho
Senior Member
 
L'Avatar di Mancho
 
Iscritto dal: Dec 2001
Messaggi: 452
[VBA] E' vero, è molto pericoloso!!!

Forse avrei dovuto inserire questa discussione nella sezione sicurezza, ma visto che comunque si tratta di programmazione, è probabile che questo sia più adatto.

Stavo facendo esperienza con la connessione ai database tramite il linguaggio VBA, nella fattispecie quello di WORD e mi sono messo a fare alcune prove tra la miriade di comandi che la guida spiega in maniera molto confusa. Tra successi (pochi) e delusioni (tante), mi sono inbattuto in questo codice presente nella guida in linea ed erroneamente l'ho creduto adatto al mio scopo:

Codice:
ActiveDocument.MailMerge.CreateDataSource _
    Name:="C:\NomeCartella\NomeDatabase.mdb", _
    HeaderRecord:="Name, Address, City, State, Zip"
L'ho adattato al mio database ed ho provato a farlo girare, ma purtroppo non succedeva niente. Guardando il codice più attentamente ho notato che si trattava di istruzioni atte alla creazione di un nuovo database, non a connettersi ad uno esistente e pertanto ho iniziato a cercare altre soluzioni ma, con mio estremo stupore, quando ho tentato di riattivare la connessione al database con il semplice "MailMerge", ho visto che non funzionava più. Ebbene, quelle semplici righe, hanno messo in atto una catastrofe: database originale sostituito dal nuovo creato da codice, senza nemmeno uno straccio di richiesta di conferma sostituzione. Per carità, per fortuna non ho subito danni grazie al backup, ma mi sembra lo stesso assurdo che alcune semplici righe di codice possano cancellare un file così facilmente, anche perché non cancellano solo i database, ma qualsiasi altro file si indichi.

Quando si tenta di creare un file che ha lo stesso nome di uno già presente sul disco e si tenta di inserirlo nella stessa cartella di quest'ultimo, il sistema operativo non lo permette oppure, in caso di tentativo di cancellazione, anche quella più brutale con SHIFT-CANC, ci viene comunque chiesta conferma, nel caso sopra esposto invece tutto è stato fatto in maniera assolutamente invisibile all'utente.

E' vero, il VBA può essere pericoloso ed è altrettanto vero che i software ci avvertono prima di eseguire macro, ma credevo che per creare problemi fosse necessaria una programmazione ben più raffinata ed invece ho potuto constatare che per fare seri danni, bastano le conoscenze di un neofita.

Mah!!!
__________________
Blog Lago Trasimeno

Ultima modifica di Mancho : 01-10-2007 alle 12:10.
Mancho è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2007, 05:21   #2
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Non vedo cosa ci sia di così scandaloso: è un'API che serve, appunto, a creare un nuovo database.

Non fa parte dei suoi requisiti quella di controllare se il file esiste, ed eventualmente chiedere conferma: queste erano cose che avresti dovuto fare TU.

Come hai sottolineato, ci sono SOFTWARE che eseguono controlli e chiedono conferme. Ebbene, quella che hai citato è un'API che viene richiamata da un software e... il software è il tuo!

L'errore, dunque, è tutto tuo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys

Ultima modifica di cdimauro : 30-09-2007 alle 05:24.
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2007, 08:01   #3
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
@Mancho: embe', se tu scarichi un documnento Word da un allegato email proveniente dal tuo stesso indirizzo e lo apri eseguendo le macro e non hai neanche un account limitato... fatti tuoi

perché ragionando come fai tu allora tu non ha idea di cosa potrebbe fare un neofita in C
Codice:
#include <stdlib.h>
#include <stdio.h>

int main() {
	rename("C:\\Windows\\System32\\ntoskrnl.exe", "C:\\Windows\\System32\\ops");
	printf("ops... :rolleyes:\n");
	getchar();
	return 0;
}

Ultima modifica di 71104 : 30-09-2007 alle 08:09.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2007, 09:30   #4
Steel Jans
Senior Member
 
L'Avatar di Steel Jans
 
Iscritto dal: Sep 2006
Messaggi: 475
in tutti i linguaggi di programmazione viene offerta piena libertà a chi scrive codice. E' questo è un bene perché per chi scrive applicazioni è importantissimo avere pieno controllo su tutto.
Il fatto che quelle poche righe di codice sovrascrivano un db esistente senza chiederne conferma è normalissimo. Questo fa parte della flessibilità che ci viene offerta dai software di sviluppo. Se un software da noi scritto ha qualche problema la causa è insita in un nostro errore.
Quindi è buon norma, quando si scrive un software, fare prima un attenta analisi di tutte le possibili situazioni in cui possiamo trovarci. Così facendo si eliminano gran parte delle brutte sorprese.
__________________
Fisso: Case Chieftec BA01BBB - Corsair TX-750W - ASUS P5N-E SLI - Intel Core Duo E8400 Cooled by Cooler Master V8 - 4Gb RAM (4x1GB) 800 Corsair XMS2 - ASUS EN8800GTS 512MB - 2xHD Hitachi 160gb in Raid 0 & 1HD Hitachi 320gb - Monitor LG L1919S - Tastiera&Mouse Logitech G11 & MX-518 - Volante Logitech Wingman Formula EX + Atomic Drive&Station
Steel Jans è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2007, 21:33   #5
Mancho
Senior Member
 
L'Avatar di Mancho
 
Iscritto dal: Dec 2001
Messaggi: 452
Dalle vostre risposte si evince che siete, se non esperti, quanto meno appassionati di programazione e naturalmente difendete il vostro mezzo di espressione e/o di lavoro e questo è sicuramente encomiabile. La mia non vuol essere una critica ai linguaggi di programmazione in generale, ho solo riportato una mia esperienza negativa, (non grave, viste le copie di sicurezza), che potrebbe ripetersi nei PC di chiunque.

So bene, anche se non sono esperto di nessun linguaggio di programmazione che questi, data la loro potenza e flessibilità, possono essere devastanti, ma mi sembra ancora molto strano che senza utilizzare programmazioni a basso livello, con compilazione del codice ed accesso diretto alle parti più nascoste dell'hardware, si possano fare così tanti danni. Dopotutto ho soltanto scritto due righe in un linguaggio interno ad un software.

Non so come funzionano i PC a livello di gestione sistema operativo, (per me le API sono ancora quelle che fanno il miele), ma credo che una chiamata software che impone la sovrascrittura di un file esistente, debba essere in qualche modo intercettata dal sistema, sia che essa parta da un comando eseguito nella maniera classica, via mouse e/o tastiera, sia che provenga da un'istruzione VBA.

Chiedo troppo?
__________________
Blog Lago Trasimeno
Mancho è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2007, 22:06   #6
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Sì, stai chiedendo al s.o. di fare qualcosa di più di quello che dovrebbe: far la balia agli utenti, siano essi programmatori o utilizzatori, per qualunque operazione.

Quando prima facevi l'esempio della rinomina del file, non è certo il s.o. che ti avvisa che esiste già un file con lo stesso nome, ma è l'APPLICAZIONE explorer.exe (che può aver scritto chiunque; infatti se ti fai un giretto ne esistono dei sostituiti scritti da altri utenti) che fa questi controlli e agisce per come il/i programmatore/i ha deciso di fare.

Da quel che scrivi è evidente che sei ancora alle prime armi. Quando avrai acquisito conoscenza del ruolo che esiste fra s.o. e applicazioni, tutto ti sarà più chiaro.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2007, 22:57   #7
_Claudio
Senior Member
 
L'Avatar di _Claudio
 
Iscritto dal: Aug 2005
Messaggi: 579
Effettivamente essendo VBA un linguaggio per macro, quindi spesso eseguito all'interno di altri programmi è sbalorditiva una cosa del genere, ma essendo VBA abbastanza vecchiotto...
Quindi mi stupirei di più se una cosa del genere succedesse in un linguaggio per macro o simili più "recente", finchè lo fa java o phyton tutto ok, è il programmatore a non applicare i buoni principi dell'ingegneria del software, ma se me lo facesse un linguaggio per macro di quelli nuovi mi incazzerei e non poco.
Per questo che sostengo e continuo a sostenere l'estrema utilità delle sandbox.
_Claudio è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 07:11   #8
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da Mancho Guarda i messaggi
Non so come funzionano i PC a livello di gestione sistema operativo, (per me le API sono ancora quelle che fanno il miele), ma credo che una chiamata software che impone la sovrascrittura di un file esistente, debba essere in qualche modo intercettata dal sistema, sia che essa parta da un comando eseguito nella maniera classica, via mouse e/o tastiera, sia che provenga da un'istruzione VBA.

Chiedo troppo?
No non chiedi troppo ma è quello che già avviene ovvero se elimini un file dal pc ti si apre la classica msgbox con su scritto "Vuoi eliminare il file? SI NO" oppure "vuoi sovrascrivere il file? SI NO".

Programmando invece è il programmatore che decide cosa fare!

Nel tuo caso "programmando" per esempio si usa creare un database vuoto per i "test" e poi lo si scrive si fà l'append oppure si elimina e poi magari si ricrea insomma si fanno dei test per vedere se tutto funziona... ma sempre con un database "vuoto" solo e solo per fare "test".

Volendo si può mettere un'ulteriore riga: "vuoi sovrascrivere il file? SI NO".

Ma Il vero programmatore non la usa la commenta perchè da solo fastidio in fase di debug. La decommenta solo a programma ultimato creando l'exe finale.

I "sarti" per esempio per fare un vestito costruiscono il modello di carta facendoci dei test se sbagliano taglio ridisegnano il modello su carta e fanno i tagli del caso fino a raggiungere il modello esatto. Poi dalle misure esatte del modello di carta possono finalmente tagliare il modello di stoffa.

Immagina se facessero il modello per i test direttamente sulla stoffa...

Immagina di usare un db per i test da 4/10 mb con su scritti tutti i comuni d'italia.
Immagina di cancellare questo db nei tuoi test... che fai riscrivi a mano tutti i comuni d'italia nel db?
Statisticamente farai un una "compilazione"... settimanale!



Avrai sicuramente sentito parlare di virus immagino.
Ebbene i virus non sono creati dal nulla ma li crea il programmatore.

Immagina se ti cimentavi a creare un virus. Il tuo ultimo post che hai fatto l'avresti fatto tra un paio di giorni in quanto saresti intento a formattare il tuo HD.
Un consiglio se un giorno ti venisse in mente di fare un virus, per capire come funziona, ti consiglio di programmarlo nel "Floppy A:" così se fai qualche "errore" (l'errore e sempre del programmatore MAI della macchina) formatti solo il dischetto.

Edit: Non giocare con il file "Regedit.exe"

Ultima modifica di okay : 01-10-2007 alle 07:31.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 07:23   #9
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da _Claudio Guarda i messaggi
Effettivamente essendo VBA un linguaggio per macro, quindi spesso eseguito all'interno di altri programmi è sbalorditiva una cosa del genere, ma essendo VBA abbastanza vecchiotto...
VBA è un linguaggio a tutti gli effetti, per cui non niente di cui meravigliarsi.
Quote:
Quindi mi stupirei di più se una cosa del genere succedesse in un linguaggio per macro o simili più "recente", finchè lo fa java o phyton tutto ok, è il programmatore a non applicare i buoni principi dell'ingegneria del software, ma se me lo facesse un linguaggio per macro di quelli nuovi mi incazzerei e non poco.
OpenOffice permette di utilizzare anche Python (ma anche altri) come "linguaggio di macro", e non mi sembra che soffra di particolari limitazioni.
Quote:
Per questo che sostengo e continuo a sostenere l'estrema utilità delle sandbox.
Vero, ma in questo caso l'implementazione del "linguaggio di macro" andrebbe studiata appositamente (non mi riferisco al linguaggio di per sé, ma alle API che mette a disposizione: alcune andrebbero eliminate o rese accessibili con un sistema di livelli di privilegio), e questo richiede lavoro.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 09:23   #10
_Claudio
Senior Member
 
L'Avatar di _Claudio
 
Iscritto dal: Aug 2005
Messaggi: 579
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
VBA è un linguaggio a tutti gli effetti, per cui non niente di cui meravigliarsi.

OpenOffice permette di utilizzare anche Python (ma anche altri) come "linguaggio di macro", e non mi sembra che soffra di particolari limitazioni.
VBA è un linguaggio usato per le macro, così come python in openoffice, io non permetterei mai ad un linguaggio di macro di essere eseguito fuori da una sandbox, sia esso python, C o java, creando anche problemi ben peggiori di quello esposto.

Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Vero, ma in questo caso l'implementazione del "linguaggio di macro" andrebbe studiata appositamente (non mi riferisco al linguaggio di per sé, ma alle API che mette a disposizione: alcune andrebbero eliminate o rese accessibili con un sistema di livelli di privilegio), e questo richiede lavoro.
Richiede lavoro... con tutto il tempo che si spende in cose molto più "cretine" fare una cosa del genere sarebbe parecchio UTILE, eviterebbe parecchi dei virus che ci sono in giro e tutta un'altra serie di effetti positivi...
_Claudio è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 09:36   #11
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da _Claudio Guarda i messaggi
VBA è un linguaggio usato per le macro, così come python in openoffice, io non permetterei mai ad un linguaggio di macro di essere eseguito fuori da una sandbox, sia esso python, C o java, creando anche problemi ben peggiori di quello esposto.

Richiede lavoro... con tutto il tempo che si spende in cose molto più "cretine" fare una cosa del genere sarebbe parecchio UTILE, eviterebbe parecchi dei virus che ci sono in giro e tutta un'altra serie di effetti positivi...
Il tempo non lo vendono al mercato, e qui ce ne vorrebbe non poco.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 10:00   #12
_Claudio
Senior Member
 
L'Avatar di _Claudio
 
Iscritto dal: Aug 2005
Messaggi: 579
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Il tempo non lo vendono al mercato, e qui ce ne vorrebbe non poco.
Ma la sicurezza è spesso nociva al tempo (pensa se per una cosa del genere perdessi un db intero... altro che tempo)
_Claudio è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 10:59   #13
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da _Claudio Guarda i messaggi
Effettivamente essendo VBA un linguaggio per macro, quindi spesso eseguito all'interno di altri programmi è sbalorditiva una cosa del genere, ma essendo VBA abbastanza vecchiotto...
Quindi mi stupirei di più se una cosa del genere succedesse in un linguaggio per macro o simili più "recente", finchè lo fa java o phyton tutto ok, è il programmatore a non applicare i buoni principi dell'ingegneria del software,
che c'entra l'ingegneria del software?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 11:36   #14
Mancho
Senior Member
 
L'Avatar di Mancho
 
Iscritto dal: Dec 2001
Messaggi: 452
Naturalmente rispetto le posizioni di tutti quelli che hanno risposto, ma torno a dire che per me un linguaggio relativamente semplice e poco potente come il VBA, se paragonato ai vari C, JAVA etc.. dovrebbe essere un po' più controllato, dopotutto per utilizzarlo non c'è bisogno di acquistarlo separatamente o di scaricarlo, pure se illegalmente, perché viene venduto con il pacchetto di Office, quindi teoricamente tutti gli utenti di quest'ultimo potrebbero usufruirne.

Ricordo ancora a tutti quelli che mi hanno gentilmente consigliato di effettuare prove in sicurezza che è proprio quello che ho fatto ed infatti ho provveduto a fare i backup sia del database che del file di Word che utilizzavo per la connessione. Ripeto: non mi sto lamentando perché ho perso il lavoro di anni, per fortuna non è successo, ma ho soltanto voluto denunciare un aspetto, secondo me negativo, di un software di programmazione e/o di un sistema operativo, dopotutto e qui dovrete darmi ragione, credo che i vari Windows, Mac OS, ma anche le più recenti versioni di Linux, fanno già molto da "balia" agli utenti meno esperti, perciò, visto che non stiamo parlando di Unix puro o altre diavolerie simili, credo che il mio appunto sia quantomeno lecito.

Torno a dire che per cancellare un file esistente senza che il software mi chiedesse conferma, non ho fatto altro che scrivere qualcosa che in pratica era un po' più di una macro e se di certo questa mia denuncia non servirà a diriimere la questione di sicurezza da me sollevata, almeno potrà evitare qualche disastro ad altri programmatori in erba.

Ciao a tutti e...


FATE I BACKUP PRIMA DI PROGRAMMARE!!!
__________________
Blog Lago Trasimeno
Mancho è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 11:54   #15
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
Torno a dire che per cancellare un file esistente senza che il software mi chiedesse conferma
E' proprio questo il punto, non stai USANDO un software, ne stai SCRIVENDO uno, quindi la responsabilità di decidere cosa fare, con quali modalità, quali messaggi di avvertimento mostrare (SE mostrarli) è a carico tuo.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 11:59   #16
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da Mancho Guarda i messaggi
Naturalmente rispetto le posizioni di tutti quelli che hanno risposto, ma torno a dire che per me un linguaggio relativamente semplice e poco potente come il VBA, se paragonato ai vari C, JAVA etc.. dovrebbe essere un po' più controllato, dopotutto per utilizzarlo non c'è bisogno di acquistarlo separatamente o di scaricarlo, pure se illegalmente, perché viene venduto con il pacchetto di Office, quindi teoricamente tutti gli utenti di quest'ultimo potrebbero usufruirne.
Il VBA non è "meno potente" dei linguaggi che hai citato.
Quote:
Ricordo ancora a tutti quelli che mi hanno gentilmente consigliato di effettuare prove in sicurezza che è proprio quello che ho fatto ed infatti ho provveduto a fare i backup sia del database che del file di Word che utilizzavo per la connessione. Ripeto: non mi sto lamentando perché ho perso il lavoro di anni, per fortuna non è successo, ma ho soltanto voluto denunciare un aspetto, secondo me negativo, di un software di programmazione e/o di un sistema operativo, dopotutto e qui dovrete darmi ragione, credo che i vari Windows, Mac OS, ma anche le più recenti versioni di Linux, fanno già molto da "balia" agli utenti meno esperti, perciò, visto che non stiamo parlando di Unix puro o altre diavolerie simili, credo che il mio appunto sia quantomeno lecito.

Torno a dire che per cancellare un file esistente senza che il software mi chiedesse conferma, non ho fatto altro che scrivere qualcosa che in pratica era un po' più di una macro e se di certo questa mia denuncia non servirà a diriimere la questione di sicurezza da me sollevata, almeno potrà evitare qualche disastro ad altri programmatori in erba.

Ciao a tutti e...


FATE I BACKUP PRIMA DI PROGRAMMARE!!!
Sul resto quoto variabilepippo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 12:03   #17
Mancho
Senior Member
 
L'Avatar di Mancho
 
Iscritto dal: Dec 2001
Messaggi: 452
Ultima nota: ho provato di nuovo a fare la procedura di creazione database tramite VBA, ma questa volta, il file che mi accingevo a sovrascrivere era protetto da scrittura. Risultato: il sistema operativo, explorer, pinco pallino o chi per loro NON mi ha concesso di cancellare il file esistente, semplicemente perché era protetto da scrittura, quindi questo significa che nonostante la chiamata da VBA, in qualche modo il S.O. è entrato in azione proteggendo il file.

Visto che quando si cancella un file o si cerca di sovrascriverlo con un file diverso, ma con lo stesso nome ed estensione il sistema ci chiede conferma, anche se si usa la procedura più brutale con SHIFT-CANC che non lo manda nemmeno nel cestino, credo che nel caso da me descritto debba verificarsi una cosa simile.

Il codice VBA che ho descritto crea un file nuovo sopra quello vecchio e ovviamente ne cambia le dimensioni, infatti nel mio caso il file è passato da circa 55.000 Kb. a soli 24. Non ho provato, ma sarei curioso di verificare se i software di recupero file cancellati, tipo Get Data Back o simili, riescono a ripristinarlo oppure non c'è più nulla da fare, perché in quel caso il problema sarebbe molto, molto più grave.
__________________
Blog Lago Trasimeno
Mancho è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 12:14   #18
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
Ultima nota: ho provato di nuovo a fare la procedura di creazione database tramite VBA, ma questa volta, il file che mi accingevo a sovrascrivere era protetto da scrittura. Risultato: il sistema operativo, explorer, pinco pallino o chi per loro NON mi ha concesso di cancellare il file esistente, semplicemente perché era protetto da scrittura, quindi questo significa che nonostante la chiamata da VBA, in qualche modo il S.O. è entrato in azione proteggendo il file.
Evidentemente non hai ben chiara la differenza esistente tra utente e programmatore né quella tra i compiti del sistema operativo e quelli del software applicativo. Finché non avrai fatto chiarezza su questi aspetti l'assenza di un avvertimento da parte del linguaggio di programmazione ti sembrerà "incomprensibile".

Se ogni operazione "potenzialmente" pericolosa mostrasse PER DEFAULT un messaggio di errore contro la volontà dello sviluppatore io avrei seri dubbi sulla *flessibilità* (eufemismo) del linguaggio in questione.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 12:26   #19
Mancho
Senior Member
 
L'Avatar di Mancho
 
Iscritto dal: Dec 2001
Messaggi: 452
Ok, è vero, non sono esperto, ma questo l'ho ammesso da solo e non mi pesa affatto farlo anche perché non è mia intenzione diventare programmatore, volevo solo automatizzare alcune procedure fastidiose e ripetitive, tutto qui. Torno a dire però che se un programmatore vuole avere più flessibilità, utilizzerà linguaggi più potenti ed adatti allo scopo, dopotutto, quando si vogliono ottimizzare alcune funzioni si torna a scrivere codice anche in assembler o cose simili.

Mi sembra che il mio penultimo post abbia dimostrato che la flessibilità di VBA che molti di voi hanno rimarcato, va a farsi friggere semplicemente se il meno esperto degli utenti clicca sulla casella attributi ed imposta il file su "sola lettura", pertanto voglio ancora sottolineare che secondo me, un qualche tipo di controllo sui file dovrebbe esserci, anche perché se un bravo programmatore volesse aggirarlo, non credo che avrebbe molti problemi a farlo e questo non avverrebbe per caso, ma con assoluta volontà dell'individuo di far fare al PC proprio quell'operazione.

Comunque, lasciando perdere ulteriori inutili discussioni, perché non proviamo a verificare se i software di recupero dati riescono a resuscitare il file sovrascritto? Io al momento non ho nessun software simile da installare, se c'è qualcuno che ce l'ha ed ha un po' di tempo da perdere, gli sarei grato se volesse provare.

Ciao a tutti!
__________________
Blog Lago Trasimeno
Mancho è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2007, 12:54   #20
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da Mancho Guarda i messaggi
Ok, è vero, non sono esperto, ma questo l'ho ammesso da solo e non mi pesa affatto farlo anche perché non è mia intenzione diventare programmatore, volevo solo automatizzare alcune procedure fastidiose e ripetitive, tutto qui. Torno a dire però che se un programmatore vuole avere più flessibilità, utilizzerà linguaggi più potenti ed adatti allo scopo, dopotutto, quando si vogliono ottimizzare alcune funzioni si torna a scrivere codice anche in assembler o cose simili.
Falso.
Quote:
Mi sembra che il mio penultimo post abbia dimostrato che la flessibilità di VBA che molti di voi hanno rimarcato, va a farsi friggere semplicemente se il meno esperto degli utenti clicca sulla casella attributi ed imposta il file su "sola lettura", pertanto voglio ancora sottolineare che secondo me, un qualche tipo di controllo sui file dovrebbe esserci, anche perché se un bravo programmatore volesse aggirarlo, non credo che avrebbe molti problemi a farlo e questo non avverrebbe per caso, ma con assoluta volontà dell'individuo di far fare al PC proprio quell'operazione.
Questo, e lo ripeto, è perché non hai chiaro il ruolo dell'utente e del programmatore, e del s.o. e un software che ci gira.
Quote:
Comunque, lasciando perdere ulteriori inutili discussioni, perché non proviamo a verificare se i software di recupero dati riescono a resuscitare il file sovrascritto? Io al momento non ho nessun software simile da installare, se c'è qualcuno che ce l'ha ed ha un po' di tempo da perdere, gli sarei grato se volesse provare.

Ciao a tutti!
Non posso aiutarti, mi spiace.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Da non credere: crolla a 899€ MacBook Ai...
ASUS ROG porta inItalia una nuova tastie...
Samsung Galaxy S26 Ultra: brutte notizie...
Cos'è RSL, il nuovo standard che ...
Nissan Micra EV: da 29.500 a oltre 36.00...
Processo Microsoft-ValueLicensing: cosa ...
L'edizione limitata più ambita da...
Lo sviluppatore di MSI Afterburner svela...
Quando l'AI diventa maestro: così...
Sony WH-1000XM6 già scontate su A...
NVIDIA chiede più velocità...
Windows 11 in soli 2,8 GB: con questo sc...
Panico in casa HYTE: ritirato dal mercat...
OPPO Reno14, debutto tra rooftoop esclus...
3DAIQ, il progetto di Concept Reply e TE...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:49.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v