Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone'
Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone'
Zenfone 11 Ultra ha tantissime qualità interessanti, fra cui potenza da vendere, un display di primissimo livello, un comparto audio potente e prestazioni di connettività fra le migliori della categoria. Manca però dell'esclusività del predecessore, che in un settore composto da "padelloni" si distingueva per le sue dimensioni compatte. Abbiamo provato il nuovo flagship ASUS, e in questa recensione vi raccontiamo com'è andata.
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA
Abbiamo partecipato ad Appian World 2024, evento dedicato a partner e clienti che si è svolto recentemente nei pressi di Washington DC, vicino alla sede storica dell’azienda. Nel festeggiare il 25mo anniversario, Appian ha annunciato diverse novità in ambito intelligenza artificiale
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini
Primo contatto con il monitor Lenovo ThinkVision 3D 27 che grazie a particolari accorgimenti tecnici riesce a ricreare l'illusione della spazialità tridimensionale senza che sia necessario utilizzare occhialini
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 17-02-2014, 10:34   #1
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 160
[VBScript] Spostare un file nel cestino

Ciao a tutti,
sto cercando un modo per spostare un file nel cestino tramite VBScript. Con il metodo DeleteFile dell'oggetto FileSystemObject, il file specificato viene elminato definitivamente. Invece c'è un modo per spostarlo nel cestino? È complicato?
Trial4life è offline  
Old 17-02-2014, 11:40   #2
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Potresti utilizzare questo tool: http://www.maddogsw.com/cmdutils/
Daniels118 è offline  
Old 17-02-2014, 12:01   #3
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 160
Non c'è un'alternativa che non richieda programmi esterni?
Trial4life è offline  
Old 17-02-2014, 12:05   #4
x_Master_x
Senior Member
 
L'Avatar di x_Master_x
 
Iscritto dal: May 2005
Messaggi: 8685
Send a File to the Recycle Bin
FolderItem.InvokeVerb method
__________________
.
Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock
The real me is no match for the legend
.
x_Master_x è offline  
Old 17-02-2014, 12:18   #5
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Quello è il modo corretto, però ha un inconveniente: viene visualizzata la finestra per la conferma della cancellazione.
L'alternativa è di modificare delle chiavi di registro, ma al momento non ricordo quali.
Daniels118 è offline  
Old 17-02-2014, 13:16   #6
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 160
Ho provato con lo script nel primo link, ma non funziona... non appare neanche la finestra di conferma della cancellazione. Com'è possibile?
(Non viene visualizzato nessun errore)
Trial4life è offline  
Old 17-02-2014, 13:25   #7
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Ops, non mi ero accorto che fossero dei link...
sostituisci quest'istruzione
objFolderItem.InvokeVerb("&Delete")
con questa:
objFolderItem.InvokeVerb("delete")
Daniels118 è offline  
Old 17-02-2014, 14:39   #8
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 160
Funziona! Grazie mille!
Trial4life è offline  
Old 17-02-2014, 20:48   #9
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 160
Mmh... c'è un altro piccolo problema.
Nello script che sto cercando di realizzare, ho bisogno di spostare nel cestino tanti file contemporaneamente. Per farlo, ho utilizzato il codice che ha linkato x_Master_x all'interno di una Sub, che ho poi richiamato in un ciclo For, in modo da spostare nel cestino ogni file presente nella cartella.
Il problema è che in questo modo i file vengono spostati nel cestino uno ad uno, mettendoci molti secondi per completare l'operazione quando i file sono varie centinaia. Invece, l'ideale sarebbe spostarli tutti contemporaneamente nel cestino...

Avete qualche idea?
Trial4life è offline  
Old 18-02-2014, 08:22   #10
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Puoi iterare sulle istruzioni di cancellazione invece che sull'intero codice.

Se i file si trovano tutti nella stessa cartella basta inserire queste due istruzioni nel ciclo:
Codice:
Set objFolderItem = objFolder.ParseName(strFileName(i))
objFolderItem.InvokeVerb("delete")
dove strFileName è un array che contiene i nomi dei file (non i percorsi assoluti) e i è la variabile indice del ciclo for.
Se hai i percorsi assoluti puoi ricavare i nomi dei file con questa istruzione:
strFileName = fso.GetFileName(pathAssoluto(i))
in questo caso strFileName è una stringa e pathAssoluto un array.

Se invece i file si trovano in cartelle diverse dovrai inserire queste istruzioni nel ciclo:
Codice:
strFolderParent = fso.GetParentFolderName(pathAssoluto(i))
strFileName = fso.GetFileName(pathAssoluto(i))
Set objFolder = objShell.Namespace(strFolderParent) 
Set objFolderItem = objFolder.ParseName(strFileName)
objFolderItem.InvokeVerb("delete")
Daniels118 è offline  
Old 18-02-2014, 13:36   #11
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 160
Mmh... a grandi linee ho capito cosa intendi, ma non credo di aver capito bene come impostare il codice.

Allora innanzitutto i file sono tutti nella stessa cartella. Tuttavia, lo script serve a cancellare tutti i file di un solo tipo all'interno di una cartella, quindi non tutti i file contenuti in essa.

Per ora la parte di codice in questione è questa:
Codice:
Set FolderRecycle = objFSO.GetFolder(FolderPath)
     For Each File In FolderRecycle.Files
          If Right(File.name,ExtLen) = Extension Then 
	       Toss(FolderPath & "\" & File.name)
	  End If
     Next
Dove:
- FolderPath è il percorso della cartella in cui ci sono i file
- Extension è l'estensione dei file da cancellare
- ExtLen è la lunghezza della stringa Extension
- Toss è la Sub con argomento "strFileToToss", contente il codice preso dal link di prima.

Quindi tu mi stai dicendo di togliere quel ciclo For Each, lasciando soltanto il ciclo l'istruzione If, e inserire un ciclo For..To all'interno della sub Toss? Ma lo devo mettere solo per la definizione di strFileName, o anche per lo spostamento nel cestino?

Ultima modifica di Trial4life : 18-02-2014 alle 14:12.
Trial4life è offline  
Old 18-02-2014, 14:07   #12
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Cosa? Il ciclo i...
Codice:
Const HKEY_CURRENT_USER = &H80000001

Private Sub moveToRecycle(FolderPath, Extension)
	strComputer = "."
	Set fso = CreateObject("Scripting.FileSystemObject")
	Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
	strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer"
	strValueName = "ShellState"
	Call oReg.GetBinaryValue(HKEY_CURRENT_USER,strKeyPath, strValueName,strValue)
	strOrigBinSet = strValue(4)
	strValue(4) = 39
	errReturnA = oReg.SetBinaryValue(HKEY_CURRENT_USER, strKeyPath, strValueName, strValue)
	Set objShell = CreateObject("Shell.Application")
	Set objFolder = objShell.Namespace(FolderPath)
	'
	Set FolderRecycle = objFSO.GetFolder(FolderPath)
	For Each File In FolderRecycle.Files
		If Right(File.name, 4) = "." & Extension Then 
			Set objFolderItem = objFolder.ParseName(File.name)
			objFolderItem.InvokeVerb("delete")
		End If
	Next
	'
	strValue(4) = strOrigBinSet
	errReturnB = oReg.SetBinaryValue(HKEY_CURRENT_USER, strKeyPath, strValueName, strValue)
End Sub
Non testato.
Daniels118 è offline  
Old 18-02-2014, 14:08   #13
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 160
Ops... ahahahah mi sono sbagliato
Trial4life è offline  
Old 18-02-2014, 14:28   #14
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 160
Non è cambiato molto... la velocità di spostamento nel cestino è sempre quella (per 300 files ci metterà all'incirca 20 secondi).

Lo script è in grado anche di rimuovere i file senza spostarli nel cestino. Per farlo, ho usato:
Codice:
objFSO.DeleteFile(ELIMINA)
con ELIMINA = FolderPath & "\*." & Extension

In questo modo, con l'asterisco, tutti i file dell'estensione Extension vengono rimossi contemporaneamente (senza bisogno di nessun ciclo!), e ci mette davvero un attimo.

C'è un modo per usare l'asterisco anche nella Sub di prima?

Ultima modifica di Trial4life : 18-02-2014 alle 14:32.
Trial4life è offline  
Old 18-02-2014, 15:45   #15
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Codice:
Const HKEY_CURRENT_USER = &H80000001
Const SHCONTF_NONFOLDERS = 64

Private Sub moveToRecycle(FolderPath, Extension)
	strComputer = "."
	Set fso = CreateObject("Scripting.FileSystemObject")
	Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
	strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer"
	strValueName = "ShellState"
	Call oReg.GetBinaryValue(HKEY_CURRENT_USER,strKeyPath, strValueName,strValue)
	strOrigBinSet = strValue(4)
	strValue(4) = 39
	errReturnA = oReg.SetBinaryValue(HKEY_CURRENT_USER, strKeyPath, strValueName, strValue)
	Set objShell = CreateObject("Shell.Application")
	Set objFolder = objShell.Namespace(FolderPath)
	'
	Set objFolderItems = objFolder.Items()
	Call objFolderItems.Filter(SHCONTF_NONFOLDERS, "*." & Extension)
	Call objFolderItems.InvokeVerbEx("delete")
	'
	strValue(4) = strOrigBinSet
	errReturnB = oReg.SetBinaryValue(HKEY_CURRENT_USER, strKeyPath, strValueName, strValue)
End Sub
Daniels118 è offline  
Old 18-02-2014, 20:50   #16
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 160
Davvero geniale!
Non so come ringraziarti!!! Funziona tutto alla perfezione
Trial4life è offline  
Old 15-08-2018, 11:18   #17
mecrally
Junior Member
 
Iscritto dal: Aug 2018
Messaggi: 1
Spostare files nel cestino da unità flash/di rete

Ciao a tutti e buon Ferragosto! Mi chiedevo: esiste uno script che permette di spostare i files che voglio cancellare nel cestino del disco C anziché eliminarli definitivamente??? Sarebbe estremamente utile, dal post che leggo sembra che ci siamo quasi ma non capisco tutte quelle righe di codice dove/come le devo inserire...
mecrally è offline  
Old 15-08-2018, 15:18   #18
Mursey
Senior Member
 
L'Avatar di Mursey
 
Iscritto dal: Aug 2017
Messaggi: 469
Quote:
Originariamente inviato da mecrally Guarda i messaggi
non capisco tutte quelle righe di codice dove/come le devo inserire...
Quattro anni fa qui si parlava di VBscript.

A te serve un file batch immagino... ?
Mursey è offline  
Old 15-08-2018, 15:57   #19
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
07E soprattutto perché sottolinei il cestino del disco c? Stiamo per caso parlando di file su un disco esterno?
Edit: non avevo visto il titolo...
Quando mandi un file nel cestino in realtà il file resta dov'è, viene semplicemente nascosto, per questo puoi inviarvi file enormi senza alcuna attesa... Ovviamente ciò non è possibile se il file risiede su un disco esterno perché non c'è garanzia che questo sia ancora collegato qualora decidessi di ripristinare il file. In questo caso il sistema deve effettuare una copia del file da qualche parte, e per farlo occorre eseguire una configurazione sul cestino per il disco in oggetto.

Ultima modifica di Daniels118 : 15-08-2018 alle 16:13.
Daniels118 è offline  
Old 15-08-2018, 16:27   #20
Slater91
Amministratore
 
L'Avatar di Slater91
 
Iscritto dal: Jun 2009
Città: Glasgow, Scozia
Messaggi: 1869
Quote:
Originariamente inviato da mecrally Guarda i messaggi
Ciao a tutti e buon Ferragosto! Mi chiedevo: esiste uno script che permette di spostare i files che voglio cancellare nel cestino del disco C anziché eliminarli definitivamente??? Sarebbe estremamente utile, dal post che leggo sembra che ci siamo quasi ma non capisco tutte quelle righe di codice dove/come le devo inserire...
Ripescare una discussione vecchia di quattro anni non è una buona idea. Meglio aprirne una nuova (magari nella sezione Windows)...
__________________
Riccardo Robecchi - autore per Hardware Upgrade
MB ASUS Crosshair VI Hero, CPU Ryzen 7 1700X, RAM 32 GiB Corsair Vengeance 3000MHz, VGA Sapphire AMD Radeon RX 5700 XT Pulse, CASE Sun Ultra 24, PSU Corsair TX650W. KDE neon x64 & Win 10 Pro x64.
Slater91 è offline  
 Discussione Chiusa


Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone' Recensione Zenfone 11 Ultra: il flagship ASUS ri...
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA Appian: non solo low code. La missione è ...
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini Lenovo ThinkVision 3D 27, la steroscopia senza o...
La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing La Formula E può correre su un tracciato ...
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming Lenovo LEGION e LOQ: due notebook diversi, stess...
La Cina ha lanciato la missione Shenzhou...
La sonda spaziale NASA Psyche comunica v...
Dacia Duster, prima guida: con le versio...
Google Pixel 8 Pro 256 GB a 928€ (minimo...
Arriva l'ok da Parlamento europeo sul di...
RISC-V: l'uso dell'ISA open-source da pa...
Amazon scatenata: iPad a 399€, airfryer ...
SK hynix, costruzione della Fab M15X ai ...
Oggi 459€ per utenti Prime il portatile ...
Sta per succedere! La prima gara a guida...
Parthenope: un nuovo RPG investigativo t...
Urbanista Malibu: ecco come va la cassa ...
Gas Station Simulator è costato 1...
AOC Graphic Pro U3, tre nuovi monitor pe...
Wacom Movink: per la prima volta il disp...
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: 03:36.


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