Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: pedraxito en 10 Marzo 2008, 18:48 pm



Título: Clipboard + Imagen
Publicado por: pedraxito en 10 Marzo 2008, 18:48 pm
Hola, en mi aplicacion estoy pegando una imagen en un picturebox desde el Clipboard pero el problema es que solo puedo pegar imagenes ahi cuando las imagenes las copio desde algun browser pero si la imagen la tengo en algun directorio de mi pc y la copio no la pega. por que es esto??

Este es el codigo que tengo para leer la imagen

Código:
Image iFotoPaciente = Clipboard.GetImage();


Espero su ayuda, gracias!!


Título: Re: Clipboard + Imagen
Publicado por: Sancho.Mazorka en 28 Marzo 2008, 06:27 am
Soy medio nuevo en VB.NET pero no te la va a pegar, xq cuando copias un archivo .JPG  por ejemplo, estas copiando uno del tipo: Clipboard.GetFileDropList y no del Clipboard.Image, no se solucionar tu inconveniente, pero debe tener solucion, talvez que te devuelva la ruta y la puedas cargar....proba!

Corrijanme si me equivoque!

Sancho.Mazorka    :¬¬


Título: Re: Clipboard + Imagen
Publicado por: DeziBel en 4 Mayo 2008, 04:39 am
Pues yo hice esto en el VB 2005:
Cree una aplicación que muestra las imágenes del portapapeles, no importa si son de archivo o copiadas directamente; osea que lee las imagenes copiadas de un browser o las copiadas desde una carpeta.
Espero que sea lo que buscas:

* Agregué una PictureBox y la deje asi como esta
* Agregué un boton y lo deje también asi como esta
* Por último agregué un timer con la propiedad "Interval" en 1000 (1 segundo)

este es el código:

Código:

 'Variable que enlista los archivos del portapapeles:
    Dim lista As System.Collections.Specialized.StringCollection

    'Numerador de imágenes:
    Dim numerador As Integer

    'Variable para obtener la extensión de los archivos
    'enlistados en la variable lista:
    Dim Archivo As System.IO.FileInfo

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Ajuste de tamaño en la PictureBox1:
        PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        numerador = 0

        'Se obtienen los archivos del portapapeles:
        lista = Clipboard.GetFileDropList

        If lista.Count = 0 Then
            'Si no hay archios en el portapapeles:
            MsgBox("No hay archivos en el portapapeles" & vbCrLf & "Buscando imagenes...")
            'Se buscan imagenes copiadas directamenete
            '(copiadas de un browser directamente, por ejemplo)
            If Clipboard.ContainsImage() Then
                'Si hay alguna imagen se pone en la PictureBox
                PictureBox1.Image = Clipboard.GetImage()
            Else
                'Si no hay:
                MsgBox("Tampoco hay imagenes en el portapapeles")
            End If
        Else
            'Si si hay archivos en el portapapeles
            'se coloca el primero en la PictureBox
            'en caso de que sea una imagen:
            Archivo = My.Computer.FileSystem.GetFileInfo(lista(numerador))
            If Archivo.Extension.ToString = ".jpg" _
            Or Archivo.Extension.ToString = ".bmp" _
            Or Archivo.Extension.ToString = ".gif" _
            Or Archivo.Extension.ToString = ".JPG" _
            Or Archivo.Extension.ToString = ".BMP" _
            Or Archivo.Extension.ToString = ".GIF" Then
                PictureBox1.ImageLocation = lista(numerador)
            End If
            'Y despues se activa el timer si hay más
            'imágenes:
            Timer1.Enabled = True
        End If
    End Sub

    'El timer mustra una imagen diferente cada segundo
    'hasta que ya no hay más en el portapapeles:
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        If numerador >= lista.Count Then
            Timer1.Stop()
            MsgBox("no hay más imágenes")
        Else
            Archivo = My.Computer.FileSystem.GetFileInfo(lista(numerador))

            If Archivo.Extension.ToString = ".jpg" _
            Or Archivo.Extension.ToString = ".bmp" _
            Or Archivo.Extension.ToString = ".gif" _
            Or Archivo.Extension.ToString = ".JPG" _
            Or Archivo.Extension.ToString = ".BMP" _
            Or Archivo.Extension.ToString = ".GIF" Then
                PictureBox1.ImageLocation = lista(numerador)
            End If

            numerador = numerador + 1
        End If
    End Sub


Espero que te sirva  ;D