Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    64

    [VB6] Copia della Clipboard

    Volevo fare una copia del contenuto della clipboard, senza curarmi di quale esso fosse.

    Lo scopo è quello di utilizzare la clipboard e poi ripristinare il suo precedente contenuto.

    Mi è sembrato banale creare un oggetto clipboard e fare la copia di questo tramite i metodi forniti. Risultato: nessuno.
    Dopo vari tentativi... eccomi qui!
    Probabilmente è una stupidaggine, ma non riesco a cavarne piede!

    Grazie
    La risposta è dentro di te...
    ... e però, è sbagliata!

  2. #2
    Suppongo che tu il contenuto della clipboard lo voglia inserire dentro un contenitore di testo (qualsiasi esso sia)...
    Non so se funzioni, ma prova a guardare il funzionamento di SendKeys...Se è praticamente un copia + incolla che vuoi fare, puoi inviare il CTRL+V alla tua nuova finestra e il contenuto della clipboard verrà incollato...

    Spero di non aver capito male
    The Fresh...remaker
    A volte la risposta è sotto ai nostri occhi, bisogna solo aver voglia di cercarla!!
    http://www.angelsinthedark.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    64
    Forse si... a meno che non abbia capito male io il tuo suggerimento!

    Quello che voglio fare è una copia della clipboard da ripristinare una volta terminato l'uso della clipboard da parte di una routine del programma.

    in pratica (scrivo in pseudocodice):

    codice:
    Dim clipCopy as Clipboard
    
    '// Copia della Clipboard
    clipCopy = Clipboard
    
    '// Uso della Clipboard con un'altra routine
    WriteSomethingInClipboard Input
    
    '// Ripristino del contenuto precedente della clipboard
    Clipboard = clipCopy
    L'uso è molto semplice, spero che l'esempio sia chiaro.
    La risposta è dentro di te...
    ... e però, è sbagliata!

  4. #4
    Non si è capito bene quello che vuoi dire... Praticamente vorresti ottenere del testo dalla Clipboard ed utilizzarlo nel tuo programma e poi reimpostare il testo di prima nelle Clipboard? Se si quando ottieni il testo con l'oggetto clipboard non si cancella mica! Comunque al massimo ti crei una variabile temporanea che poi riassegni alla Clipboard...


  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    64
    ...che è esattamente ciò che ho cercato di fare, ma senza successo!

    NON voglio ottenere il testo della clipboard per usarlo nel programma.
    Voglio ottenere il contenuto della clipboard per salvarlo in una variabile temporanea, usare la clipboard per altri scopi, quindi ripristinare nella clipboard i dati presenti in precedenza.

    Lo scopo ultimo e far si che venga usata la clipboard, ma senza cancellare il suo precedente contenuto (o meglio... il contenuto viene ovviamente cancellato, ma poi ripristinato, in modo che questa cancellazione sia invisibile all'utente).

    In pratica, mi serve la versione funzionante del pseudocodice scritto sopra!
    La risposta è dentro di te...
    ... e però, è sbagliata!

  6. #6
    OK Capito... Ma in che modo la vorresti utilizzare la Clipboard nel tuo programma?

  7. #7
    Allora, vediamo se posso aiutarti così:

    SOLUZIONE 1: Utilizzo di una textbox + Sendkeys
    1) Crea una textbox che metti visible =false
    2) Nella funzione che devi utilizzare per fare il "copia" del contenuto della clipboard imposti il setfocus su questa text e sul suo evento KeyUp o KeyDown utilizzi i codici ascii che ti permettono di fare un CTRL+V

    3) Utilizzi la clipboard come meglio credi

    4) Nella funzione che devi utilizzare per il ripristino prendi il contenuto della text nascosta e invii un bel SendKeys che ti compone il CTRL+C (praticamente Copia il contenuto della text e ovviamente questo va nella clipboard).

    SOLUZIONE 2: Utilizzo di Shell oppure ShellExecute + SendKeys
    1) Nella funzione che utilizzi per fare il "copia" richiami l'API ShellExecute (trovi un esempio di codice da scaricare qui oppure la Shell (se sei alle prime armi è meglio lasciare le API all'alveare) e ti fai aprire il notepad.exe in modalità hidden.

    2) Con la funzione SendKeys invii il corrispondente di CTRL+V

    3) Utilizzi la clipboard come meglio credi

    4) Attivi la finestra (che rimaneva aperta) del Notepad

    5) Invii il SendKeys che ti fa un "Modifica\Seleziona Tutto\" e poi "CTRL+C" e hai il contenuto della clipboard ripristinato

    La shell non fa altro che questo:

    Shell "notepad.exe ", vbNormalFocus


    Ti consiglio comunque di far riferimento alla guida di VB per tutte le funzioni che ti ho inserito, io a spiegarmi sono un cane..
    The Fresh...remaker
    A volte la risposta è sotto ai nostri occhi, bisogna solo aver voglia di cercarla!!
    http://www.angelsinthedark.it

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    64
    @Scorpion69
    La libreria per l'acquisizioni di immagini mette l'immagine acquisita nella clipboard.
    Volevo che, nel fare questo, non si perdessero eventuali altri dati memorizzati nella clipboard.

    @mentos
    Grazie! Prima di arrabbattarmici, c'è un punto che vorrei chiarire.
    Il contenuto della clipboard potrebbe essere qualunque... testo, immagini, panini alla nutella...
    Il tuo metodo, il primo per lo meno, credo funzioni solo con il testo. O sbaglio? Vale anche per il secondo metodo?
    La risposta è dentro di te...
    ... e però, è sbagliata!

  9. #9
    Certamente, il primo metodo funziona solo col testo. Il secondo funziona con tutto se utilizzi ShellExecute o Shell e Word per esempio, ma ovviamente non funziona se utilizzi il notepad.
    Ti faccio una nota però: shellexecute si cerca da solo il programma per aprire un determinato file, Shell invece ha bisogno del percorso assoluto delle applicazioni (come ad esempio C:\Programmi\Office\...\WinWord.exe) ma funziona con quelle di default di Windows come ad esempio notepad.exe
    The Fresh...remaker
    A volte la risposta è sotto ai nostri occhi, bisogna solo aver voglia di cercarla!!
    http://www.angelsinthedark.it

  10. #10
    per quel che ricordo, la Clipboard è un oggetto accessibile da VB... (con i metodi .GetData, .SetData, .Clear, .GetText, .SetText, .GetFormat)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.