Visual Basic - Enviar un Archivo al Portapapeles

Life is soft - evento anual de software empresarial
 
Vista:

Enviar un Archivo al Portapapeles

Publicado por Luis (5 intervenciones) el 13/07/2008 03:00:52
Estimados:
Necesitaría la siguiente ayuda, tengo que enviar un archivo al Portapapeles con VB6 para luego pegarlo en cualquier lado (por ejemplo en un e-mail ó en alguna parte del Disco).
Revise en este foro algunas respuesta sobre casos similares, pero no encontre sobre como guardar un archivo (xxx.jpeg - xxx.word, etc. etc.).

Concretamente lo que quiero hacer es:
Indicando la ruta del archivo (origen), que lo copie en el Portapales y luego al abrir un correo poder pegarlo (como archivo adjunto).

En la actualidad, busco el archivo por medio del explorador de Win, lo copio y luego lo pego en el mensaje (tambien se puede desde el mimo mensaje buscar el archivo).

Necesito automatizar una herramienta de envío de archivos por e-mail y no se como realizarlo.

Agradecido por vuestra ayuda.
Saludos.
Luis
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Enviar un Archivo al Portapapeles

Publicado por JuanC (68 intervenciones) el 13/07/2008 13:22:58
deberías recurrir a las API de Windows
este fragmento (en C++ Builder4) quizá te de una idea de las API's
que tenés que buscar... (faltan algunas)

....
UINT CF_DROPEFFECT = ::RegisterClipboardFormat CFSTR_PREFERREDDROPEFFECT);
if(::OpenClipboard(Handle)){
::EmptyClipboard();
::SetClipboardData(CF_HDROP, hDrop);
::SetClipboardData(CF_DROPEFFECT, hDropEffect);
::CloseClipboard();
}
....

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Enviar un Archivo al Portapapeles

Publicado por igor (633 intervenciones) el 13/07/2008 14:20:00
Gracias por tu ayuda, pero creo que estás complicando las cosas.

Ya existen otros foros para C. Este es de VISUAL BASIC.

La API en este caso no hace falta. Además, no es algo para gente poco experimentada.

Para manipular el Portapapeles en VB se utiliza el elemento Clipboard.

Para manipular archivos se utiliza open, close, etc. Todo ello en MSDN.

Open archivo for input as #1
lineinput #1, buffer
Clipboard.SetText buffer
Close #1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Enviar un Archivo al Portapapeles

Publicado por JuanC (68 intervenciones) el 13/07/2008 17:32:19
así que este era un foro de Visual Basic??, pues mira que no me di cuenta...
y no sabía que hay foros para C
suerte que haya gente para aclarar las cosas! ;-)
mejor me dedico a otra cosa...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Enviar un Archivo al Portapapeles

Publicado por Luis (5 intervenciones) el 13/07/2008 20:56:58
Igor, probe con el código que mencionas y cuando voy a pegar lo que esta en el portapales solo pega una cadena de carácteres (ÿØÿá!þExifII* z€)
Tal vez Yo le este errando en algo?
Leí la ayuda del MSDN y entendí que lo que mencionas como "buffer" es una variable de tipo String

Una vez que ejecuto el codígo, siendo RutaImagen el lugar donde esta el archivo, luego abro un correo de Outlook y pego el contenido del portapales (botón derecho del ratón y pego), acá es donde me aparece la cadena de carácteres.

El código me quedo así:

Dim Variable as String
Open RutaImagen For Input As #1
Line Input #1, Variable
Clipboard.SetText Variable
Close #1

Desde ya, gracias por lo que me estas enseñando.
Luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Enviar un Archivo al Portapapeles

Publicado por igor (633 intervenciones) el 13/07/2008 22:13:33
Uno porque me paso y otro porque me quedo corto, uno no sabe como acertar.

Estas haciendo bien, para copiar datos en vez de texto utiliza SetData en vez de SetText.

Con ese código copias una línea de texto al portapapeles.

Si quieres adjuntar un archivo en Outlook no vas por buen camino. Sería bastante complicado hacer eso con VB de manera totalmente automática.

La solución de copiar en el portapapeles y pegar en Outlook serviría para añadir texto al contenido del e-mail. Como si lo escribieras a mano pero con copiar y pegar.

Para adjuntar archivos yo te recomiendo que copies en el portapapeles la RUTA DE ACCESO del documento y luego peges ese texto en donde se selecciona el archivo adjunto. Ej:

"C:Documents and settingsUsuariomis documentosFoto.jpg"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Enviar un Archivo al Portapapeles

Publicado por Luis (5 intervenciones) el 14/07/2008 05:00:28
Estimo que la Ruta de Acceso que mencionas se debe colocar en la dirección del explorer y así ubicar el archivo, no?

Bueno, copiar un archivo desde el explorador y luego poder pegarlo en un e-mail utilizando solo Window se puede, hacerlo con VB se ve bastante dificil.

Veré que hago, desde ya muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar