Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [vba] e access - Copia di una stringa in memoria degli appunti

    Come faccio a copiare una stringa contenuta in una variabile pippo di tipo string in memoria degli appunti per poi incollarla in altre applicazioni tramite CTRL-V?
    http://www.neonargon.com/
    ----:::[ GoTeNsSj4 ]:::----

  2. #2
    nessuno mi dice niente?!
    http://www.neonargon.com/
    ----:::[ GoTeNsSj4 ]:::----

  3. #3
    ciao,

    devi inserire nei riferimenti: Microsoft Forms 2.0 Object Library

    poi inserisci questa sub:

    codice:
    Sub MettiInAppunti(Valore As String)
        Dim oDO As New DataObject
        oDO.SetText Valore
        oDO.PutInClipboard
        Set oDO = Nothing
     End Sub
    e poi la richiami così:

    codice:
    Sub Prova()
        Dim Pippo As String
        Pippo = "prova"
        Call MettiInAppunti(Pippo)
    End Sub
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  4. #4
    non avendo a disposizione il riferimento a Microsoft Forms 2.0 Object Library, posso usare l'oggetto ClipboardObject, che invece ho a disposizione? se si come?

    Io ho a disposizione la seguente libreria, vi posto il codice:
    codice:
    Type ClipboardObject
        Object() As Byte
        objFormat As Long
        Text() As Byte
    End Type
    
    Public ClipObj(1 To 9) As ClipboardObject
    
    Public Sub ClipboardFromBLOBToMemory()
    'Memorizza nelle variabili globali di Clipboard il contenuto della tabella Clipboard
    Dim lID As Long
    Dim res As Boolean
    Dim rst As ADODB.Recordset
    Dim i As Integer
    Dim Hwnd As Long
        OpenClipboard Hwnd
        EmptyClipboard
        CloseClipboard
        If Not ApreTabella(rst, "SELECT * FROM IntClipboard") Then
            Messaggio msgDialog, "Non riesco ad aprire la tabella IntClipBoard"
            Exit Sub
        End If
        
        For i = 1 To 9
              lID = rst("Formato")
              If lID = 0 Then GoTo Prossimo
              ClipObj(i).objFormat = lID
              If lID <> 13 Then ' Se non si tratta di testo normale...
                  lID = GetClipboardIDForCustomFormat("Rich Text Format") ' Registra il nome Rich Text Format nel clipboard
              End If
              WriteBLOBToMem rst, "Oggetto", ClipObj(i).Object
            'Esporta SEMPRE entrambi i formati di clipboard
              WriteBLOBToMem rst, "StrTesto", ClipObj(i).Text
    Prossimo:
              rst.MoveNext
        Next
        rst.Close
        Set rst = Nothing
    End Sub
    
    Private Function WriteBLOBToMem(t As ADODB.Recordset, sField As String, Destination() As Byte)
        Dim NumBlocks As Integer, DestFile As Integer, i As Integer
        Dim FileLength As Long
        Dim strData As String
        Dim RetVal As Variant
        On Error GoTo Err_WriteBLOB
        FileLength = t(sField).ActualSize
        If FileLength = 0 Then
            WriteBLOBToMem = False
            Exit Function
        End If
        Destination = t(sField).GetChunk(FileLength)
        WriteBLOBToMem = FileLength
        Exit Function
    Err_WriteBLOB:
        WriteBLOBToMem = -Err
        Exit Function
    End Function
    
    Public Function ScriveClipboard(n As Integer, contenuto As String) As Boolean
    ScriveClipboard = False
    Dim rst As ADODB.Recordset
    On Error GoTo fine
    ApreTabella rst, "SELECT * FROM IntClipboard WHERE ID='" & n & "'"
    rst("StrTesto") = contenuto
    rst("Formato") = 13
    rst.Update
    rst.Close
    Set rst = Nothing
    ScriveClipboard = True
    Exit Function
    fine:
    Messaggio 1, "Errore nella Routine ScriveClipboard"
    End Function
    io richiamo prima la ScriveClipboard(1,stringaMia), che mi scrive sulla tabella opportuna il contenuto che gli passo per parametro, e poi richiamo la ClipboardFromBLOBToMemory. Solo che non mi mette sugli appunti il contenuto che gli metto sulla tabella con la ScriveClipboard, e se incollo non mi incolla niente!!!!
    http://www.neonargon.com/
    ----:::[ GoTeNsSj4 ]:::----

  5. #5
    io la dll del riferimento ce l'ho nella cartella system32 di windows...

    prova a controllare... il file si chiama FM20.dll...
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

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.