Newsgroup: it.comp.lang.visual-basic
Titolo: clipboard !!!

cIAO A TUTTI
problemino....
un mio programma fa' il CONTROL - C su una grid selezionata
beh su win98 funziona bene e posso copiare il tutto su excel o word
con  CONTROL - V......Su XP  mi succede che il promo control -c
funziona  e passo il tutto ulteriori control - c non danno alcun risultato e
anche rilanciandoo l'applicazione la clipboard (dall'applicazione!!)
 rimane bloccata fin quando non resetto la macchina.
Il prog. e' fatto con il Vis. bas. 6 pro  come faccio ???
se potete rispondete anch via mail   
chi...@iol.it

ma non ho capito bene, tu utilizzo l'oggetto clipboard vero?

[*IOL* = 
chi...@iol.it
 in news:Gj%Jb.226270$
vO5.9...@twister1.libero.it
]
ha scritto:

In tutta sincerità, non è affatto chiaro.
Ad esempio, non è chiaro se il programma è scritto da te o si tratta di
un'applicazione che ti ritrovi ad usare...
Prova con Ctrl+Ins e Shift+Ins al posto, rispettivamente, di Ctrl+C e Ctrl+V

 un'applicazione che ti ritrovi ad usare...
In realtà ho sperimentato problemi analoghi anch'io.
Provare per credere: nuovo progetto, un commandbutton e questo codice:
Private Sub Command1_Click()
    Clipboard.SetText "ciao"
End Sub
Se si va sulla finestra di debug un CTRL+V produce "ciao", provate la stessa
operazione da qualunque altra parte, es. su notepad: avrete il vecchio
contenuto della clipboard.
In realtà mi pare di ricordare che questo sgradevole effetto sparisca nel
compilato.
Ciao
--
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 vecchio contenuto della clipboard.
A me pare, pur anteponendo un Clipboard.Clear, che non funzioni solo sulla
finestrra di debug, ma funziona/importa regolarmente su tutte quelle
esterne. Un po' come dire ... copio qualcosa dalla finestra del codice
dell'IDE di VB, chiudo VB, importo e ... importo una cippa. Se non chiudo VB
va tutto bene...

 esterne.
A me no: se vado in un grog esterno *non* ho "ciao" con CTRL+V.
E questo lo vedo adesso sul mio PC, ma l'ho notato anche sul PC in ufficio
con hw e SO diverso (anche la ver di VB e diversa), quindi non so che dire.


con hw e SO diverso (anche la ver di VB e diversa), quindi non so che dire.
Davvero strano, anche perche' ho spesso usato la Clipboard per le cose
piu' turpi.
-- 
ciao, hal

>con hw e SO diverso (anche la ver di VB e diversa), quindi non so che dire.
Ora che ci penso: ci sono programmi che azzerano la clipboard
all'avvio, uno di questi e' proprio visual basic.
-- 
ciao, hal

 all'avvio, uno di questi e' proprio visual basic.
VB fa cose strane con la CB, secondo me il processo di VB "filtra" la CB di
sistema.
Vi è mai successo di avere qualcosa in CB e VB va in crash?
La CB rimane vuota, e mi pare strano che un programma in crash abbia il
tempo di preoccuparsi della CB.


 piu' turpi.
Volete dire che il mio esempio (non) funziona solo con me anche se su PC
diversi?
Non ci credo nemmeno se me lo dimostrate.


Non ci credo nemmeno se me lo dimostrate.
A parte che l'ho leggermente modificato in
Option Explicit
Private Sub Command1_Click()
    Clipboard.Clear
    Clipboard.SetText (Text1.Text)
End Sub
ti garantisco che il Ctrl-V su altri programmi funziona.
Devo mandarti un avi? ;-)
-- 
ciao, hal

 all'avvio, uno di questi e' proprio visual basic.
Nein. Come dicevo, azzera alla chiusura.

 Non ci credo nemmeno se me lo dimostrate.
Ho riprovato e confermo, anche col codice di hal.
Nella finestra di debug Ctrl+V (o anche Shift+Ins) non incolla nulla.
In ogni altro programma esterno a VB, incolla regolarmente (sempre che VB,
da cui si è depositato in CB, non sia stato chiuso prima).
Quello che tu dici accade se non metti (come nel tuo codice non hai messo)
il Clipboard.Clear prima del SetText...

 Nella finestra di debug Ctrl+V (o anche Shift+Ins) non incolla nulla.
Per questo il problema dipende dal fatto che il programma è in esecuzione.
Basta un Ctrl+Pausa/Interr (o uno stop brutale) e allora incolla anche nella
finestra di debug.

     Clipboard.SetText (Text1.Text)
E' vero.
Cosě funziona.
Non ha una logica, ma cosě funziona :)
Questo significa che anche il mio codice *non* funziona :)


Non ha una logica, ma cosě funziona :)
Lo scopo della preventica chiamata al metodo Clear e' quello di
liberare gli handles allocati in precedenza dalla nostra o da altre
applicazioni.
Peraltro, se questo ha un senso programmando a livello Win32, concordo
con te che in un linguaggio "macro" come Visual Basic cio' non ha
molto senso. Penso che la chiamata sotterranea a EmptyClipboard()
potrebbe benissimo essere fatta automaticamente dal metodo SetText,
che, in goni caso si deve gestire la OpenCliboard() e la relativa
CloseClipboard().
Mah!
-- 
ciao, hal