Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[.Net] VB2010 - Errore nell'accesso all Clipboard

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

[.Net] VB2010 - Errore nell'accesso all Clipboard

Postdi maxmula » 10/02/11 10:39

Ciao a tutti,

sto scrivendo un programma in cui una serie di dati viene proposta alll'iterno di un controllo Listview (in modalità Report)
L'utente ha facoltà di selezionare alcune righe quindi da menu contestuale, utilizzare la funzione "copy to clipboard", che ho implementato in questo modo:

Codice: Seleziona tutto
Sub COPY_ROW()
        Dim TOCOPY As String
        TOCOPY = ""
        For Each ITM In OVERVIEW.SelectedItems
            For K = 0 To ITM.SUBITEMS.COUNT - 3
                SUBITM = ITM.SubItems(K)
                TOCOPY += SUBITM.TEXT.ToString & vbTab  '" | "
            Next
            TOCOPY += vbCrLf
        Next
        My.Computer.Clipboard.SetText(TOCOPY, TextDataFormat.Text)
    End Sub


Ed ecco il problema: quando l'esecuzione arriva all'istruzione Clipboard.SetText si genera un'eccezione (External Exception) con il seguente messaggio:

    "Requested clipboard Operation did not succeed".

A questo punto, non è più possibile copiare dati negli Appunti di Windows da nessun'altra applicazione.

Visti alcuni forum, ho pensato di avere qualche malware a bordo, ma non ne ho trovato traccia: sembra che questo problema si verifichi solamente mentre è in funzione il mio programma (anche solo in modo debug), tant'è che non appena lo chiudo la clipboard torna a funzionare regolarmente.

Non ci sono caratteri "strani" nella stringa che copio, succede anche se faccio My.Computer.Clipboard.SetText("ABCD", TextDataFormat.Text)

A questo punto, penso di essere io a sbagliare qualcos'altro... ma cosa?

Grazie in anticipo,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Sponsor
 

Re: [.Net] VB2010 - Errore nell'accesso all Clipboard

Postdi hydra » 11/02/11 08:16

Clipboard dovrebbe essere un namespace del framework, senza dover scomodare il my. Potresti quindi provare semplicemente a scrivere Clipboard.SetText() e vedere se cambia (anche se ho il sospetto che il my faccia il mapping di altre classi del framework).
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Re: [.Net] VB2010 - Errore nell'accesso all Clipboard

Postdi maxmula » 11/02/11 10:20

NIente da fare, anche così mi genera l'eccezione.
La cosa strana però è che i dati vengono comunque copiati negli appunti: se apro un editor di testo e faccio CTRL-V mi trovo tutta la selezione copiata. :eeh:


Ho messo il tutto all'interno di un controllo Try/Catch/End Try: se non altro così riesco ad evitare che il programma si blocchi; in caso d'errore mi limito a mettere a False un flag ma non stampo alcun messaggio.
Speriamo che l'utente non se ne accorga... :P


Grazie comunque per la risposta.
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: [.Net] VB2010 - Errore nell'accesso all Clipboard

Postdi hydra » 11/02/11 10:39

Leggendo in giro sembra che se c'è un'altra applicazione che sta usando il clipboard possa venir generara quest'eccezione, ma è tutto da verificare. Consigliano anche di dare un clear prima di copiare i dati. Comunque l'ho appena provato (in c#) e non mi ha dato nessun tipo di problema.
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Re: [.Net] VB2010 - Errore nell'accesso all Clipboard

Postdi maxmula » 11/02/11 14:47

Avevo trovato anch'io quest'informazione... Il problema però è capire quale applicazione sta usando la clipboard: quando eseguo l'istruzione incriminata c'è attivo soltanto il debug di VBExpress... che io sappia.

Per caso conosci qualche modo per capire quale processo sta usando una determinata risorsa?

MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: [.Net] VB2010 - Errore nell'accesso all Clipboard

Postdi hydra » 11/02/11 16:10

Ne parlano qua, devi usare le api di windows. Non so di preciso cosa torni il metodo, forse l'id del processo (che dovresti riuscire a confrontare nel task manager o recuperando la lista dei processi aperti).
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Re: [.Net] VB2010 - Errore nell'accesso all Clipboard

Postdi maxmula » 11/02/11 16:21

Sembra interessante.
Non so se riuscirò a sperimentare oggi, è venerdì ed inizio un po ad accusare i sintomi da weekend imminente :) ...

Se scopro qualcosa, però, faccio sapere.

Grazie 1000!

MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Postdi archimede » 11/02/11 16:23

Non so se vale anche per la clipboard, ma forse puoi provare Process Explorer.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova


Torna a Programmazione


Topic correlati a "[.Net] VB2010 - Errore nell'accesso all Clipboard":

Errore strano
Autore: Mr.Frank
Forum: Software Windows
Risposte: 0

Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti