Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: arenoide en 15 Agosto 2011, 04:14 am



Título: Enviar Ctrl+c a una ventana de windows para copiar un texto seleccionado
Publicado por: arenoide en 15 Agosto 2011, 04:14 am
Hola,

Estoy haciendo un programa en C# que coge cierto texto de una página del explorador y lo copia al portapapeles, para ello le envio con la API sendmessage doble click encima de la palabra que quiero copiar para seleccionarla entera. Eso lo hace muy bien, el problema está cuando intento copiarla en el portapapeles. He probado a enviarle con sendmessage la instrucción Ctrl+c como pone aquí:
http://www.devx.com/vb2themax/Tip/18632 (http://www.devx.com/vb2themax/Tip/18632)
pero no copia nada al portapapeles. Alguna idea?

Muchas Gracias!


Título: Re: Enviar Ctrl+c a una ventana de windows para copiar un texto seleccionado
Publicado por: criskapunk en 15 Agosto 2011, 04:25 am
Con vb.net para copiar contenido al portapapeles podés hacerlo así:

Código
  1. Clipboard.SetDataObject(TextBox1.Text)

Supongo que habrá algo que haga la misma función en C#.

Edito:
:http://www.c-sharpcorner.com/UploadFile/mahesh/WorkingwithSystemClipboard12032005043903AM/WorkingwithSystemClipboard.aspx

Un saludo.


Título: Re: Enviar Ctrl+c a una ventana de windows para copiar un texto seleccionado
Publicado por: arenoide en 15 Agosto 2011, 04:41 am
El problema es que lo que quiero copiar al clipboard no es un texto conocido de ningún textbox ni de un programa mio, sino del navegador, por lo que eso no me sirve :(  Necesito conseguir echar a funcionar el sendmessage con el ctrl+c pero no sé cómo hacerlo ni qué hago mal :(


Título: Re: Enviar Ctrl+c a una ventana de windows para copiar un texto seleccionado
Publicado por: Meta en 16 Agosto 2011, 00:55 am
Hola:

si quieres copiar archivos de textos .txt sin tener que abrirlo con Windows 7, sigue el truco.

Creas un archivo de texto. Guarda estos dantos dentro de él.

Citar
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\txtfile\shell\copycontents]
@="Copiar contenido en el Portapapeles"

[HKEY_CLASSES_ROOT\txtfile\shell\copycontents\command]
@="cmd.exe /c clip < \"%1\""

Guarda el archivo con la extensión .reg. Cuando lo ejecutes, te pedirá confirmación, la 2ª vez también.

Ahora, selecciona cualquier archivo de textos con contenidos dentro, con el botón derecho del ratón púlsalo y te aparece un menú que dice:

Copiar contenido en el Portapapeles

Luego pegas el archivo donde quieras, como en el Word con Control + V.