Newsgroup: it.comp.lang.visual-basic
Titolo: copia incolla da appunti

Ciao a tutti,
vorrei implementare il copia/taglia-incolla verso un mio programma in vb6.
In pratica vorrei usare lo stesso meccanismo che usa il windows per farlo.
Non ho trovato niente di esplicativo in giro.
Qualcuno ha un esempio o un consiglio?
Grazie e Buon Natale a TUTTI.
Caio
ioson


Digita Clipboard su di un modulo di codice
e poi premi F1.
Buon lavoro.
-- 
----------------------------
Mauro Gamberini 


Grazie, ma non č quello che chiedevo...
a me non serve copiare ed incollare testo o immagini, ma file, cartelle.
In buona sostanza il classico, vecchio buon copia ed incolla che si esegue
tra le varie finestre di windows.
si puň fare?
grazie
Ioson

 a me non serve copiare ed incollare testo o immagini, ma file, cartelle.
per copiare un file puoi usare FileCopy("origine","destinazione"), invece
per copiare una directory puoi usare un FileSystemObject in questo modo: (ma
sicuramente esiste un modo piů semplice)
aggiungi un riferimento a scrrun.dll
'inizio codice
Dim fso As New FileSystemObject
Private Sub copiadir()
    fso.CopyFolder "sorgente", "destinazione", False
End Sub
'fine codice


 :)
Evidentemente non riesco a spiegarmi bene...
Faccio un esempio:  apro la finestra sul mio disco C da risorse del
computer, faccio click destro sul file pippo.doc
faccio click su copia.
Apro la mia applicazione e, c'è un bottone al quale associo un comando che
"vorrei" che mi facesse l'incolla
di quanto ho copiato dalla finestra del mio C (pippo.doc).
Domanda:
quali istruzioni devo associare al bottone?
Visto che ci sono una miriade di applicazioni che lo fanno, mi meraviglierei
se non si potesse fare.
In altri termini, come si gestisce l'informazione legata al "copia" o
"taglia"  fatta in windows?
Spero di essere stato chiaro.
Grazie e Auguri ancora...
Ioson

 grazie
si', ma quando lo fai in explorer windows ti semplifica parecchio la vita...
in vb devi gestirtelo tu.
guardi il percorso che e' stato mandato negli appunti, poi effettui la copia
con dir$() ed eventuali ricorsioni, o meglio con la funzione dell'api
SHFileOperation.
per quest'ultima un esempio direi che lo trovi qui:
http://www.gbcweb.com/free/vb%5Fesempi/
molti altri esempi se cerchi un po' qua e la'.
-- 
hth, ciao, j.
http://www.sundaysw.com

> guardi il percorso che e' stato mandato negli appunti,
C'è un modo ovvio per fare questo o me lo devo creare io?
Grazie
Ioson

 Grazie
mi manca un info. l'app in cui appare il percorso da copiare e' quella che
stai facendo o altro (explorer, ecc.) ?
se e' tua, il percorso l'avrai in un listview.item, in un txtPath o che. se
hai un pulsante 'copia', quando lo cliccano guardi l'item/text.
se l'app e' un'altra, mi sa che devi intercettarla e vedere cosa sta
spedendo in clipboard. ma se il caso e' questo mi chiamo fuori.
ciao, j.


Il caso è quello.....
copio dall'explorer e incollo nella mia applicazione.
Non ho motivo di credere che non si possa fare, visto che in una infinità di
applicazioni
si può fare l'incolla (o addirittura il drag&drop) dalle finestre
dell'explorer alle varie applicazioni.
Però non riesco a capire dove reperire le info.
Possibile che non ci sia nessuno al quale è capitato di farlo?
Grazie comunque
Auguroni....
Ioson

Qualcuno mi da' una dritta su come ricavare l'elenco degli handle delle
finestre attive in un determinato momento (ovviamente in vb)?
Di finestre attive in un determinato momento in Windows ce n'e' una ed una
sola (l'hWnd lo trovi con GetForegroundWindow())
Se vuoi tutti gli handle delle finestre di primo livello (top-level) devi
usare la funzione API EnumWindows(). Se poi ti servono anche gli handle
delle finestre figlie, usa EnumChildWindows().

Il drag and drop è una cosa. Viene gestito completamente
dal sistema operativo. Basta che tu abiliti i DragEvent nel
tuo controllo (ammesso che lo supporti) inserisci del codice
per intercettare e fare quello che devi a seconda del tipo
di app che stai facendeo dentro all'evento drag_complete
e hai praticamente risolto con "poche" righe di codice.
Il copia e incolla come lo vuoi fare tu è tutt'altra storia.
per quanto vero ci siano in giro tante app che lo fanno, è
anche vero che il più delle quali non sono scritte in vb.
Comunque un sistema è comunque intercettare il path del
file o della cartella non più nella clipboard - perchè secondo
me non viene scritto li (li al massimo troverai un array di byte
con dentro il contenuto di quello che hai copiato e forse nemmeno
quello) - ma dovrai cercartelo in qualche area di memoria
separata. Ma non chiedermi dove, mai fatto sta cosa.
Ti consiglio magari di provare a chiedere su qualche forum
in inglese. Generalmente - essendo una popolazione maggiore -
gli stranieri che "vubbano" troverai più risposte.
Andrea 

 Qualcuno ha un esempio o un consiglio?
Mi autocito con un mio vecchio post di quasi quattro anni fa:
http://www.google.it/groups?hl=it&lr=&threadm=93qnth%24b2k5g%241%40ID-56381.news.dfncis.de&rnum=3&prev=/groups%3Fas_q%3Doledragdrop%2520files%26as_ugroup%3Dit.comp.lang.visual-basic%26as_uauthors%3Dhal1961%26lr%3D%26hl%3Dit
-- 
hth, hal