Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-03-2011
broly7 broly7 is offline
Miembro
 
Registrado: jun 2008
Posts: 43
Poder: 0
broly7 Va por buen camino
Wink Cannot open Clipboard

Buenas, verán estoy trabajando con la uses clipbrd. Y según he leido por los foros cada vez que el portapapeles guarda o pega alguna cadena, debe mantener el APi visor desde el que hizo la última función, (o algo asi entendí). Y por eso me tira siempre este error del que estoy quemado.
Pongo las 2 últimas funciones desde donde vienen los errores:

Código Delphi [-]
Function CTRLC:string;
begin
wnd:=0;
wnd := FindWindow (Nil,'OtroProgramaexterno'); //Aquí cambia la ventana donde trabaja
if wnd<>0 then begin
BringWindowToTop(wnd);
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event($43, 0, 0, 0); // Ctrl+'C'
keybd_event($43, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); 
end;
end;

E inmediátamente seguido ejecuto esta función:

Código Delphi [-]
Function CheckPaste:string;
var
S:string;
begin
S:=Clipboard.AsText;
if S = '' then //CHAN-CHAN! Aqui es donde sucede el error "Cannot open clipboard"
begin
form1.Timer1.Enabled:=false;
Showmessage('...');
end else
begin
Showmessage('...');
end;
end;

En cambio he porbado a ejecutar las 2 funciones por separado con 2 botones de acción y sí funciona.
Y el error creo que se da por lo que dije de que cambia el handle o algo.
Gracias, a ver si hay suerte y lo puedo solucionar.

PD: me he mirado 400 veces este hilo pero no he sacado nada en claro ya que no trabaja con el uses clipbrd. 1 Saludo. =)
Responder Con Cita
  #2  
Antiguo 11-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Exactamente qué necesitas hacer?
¿Comunicarte entre las dos aplicaciones?
¿Puedes usar otro método que no sea el portapapeles?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 11-03-2011
broly7 broly7 is offline
Miembro
 
Registrado: jun 2008
Posts: 43
Poder: 0
broly7 Va por buen camino
No puedo Neftali, tiene que ser con el portapapeles, porque trabajo con otra aplicación que yo no he creado, que contiene un campo de texto con el cual trabajo. Esta última función selecciona todo el supuesto texto con "ctrl-A"(no esta puesta en el topic), hace un ctrl-c igual que llenará o no llenará el portapapeles; para saber si lo he pegado, o por el contrario no lo he pegado usoesa función "Checkpaste" que mira en el clipboard si está lleno o vacío. Y siempre me ocurre ese error al llamar seguias esas 2 funciones.
Gracias
Responder Con Cita
  #4  
Antiguo 11-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A esto me refería, a saber qué es lo que tienes que hacer. Que el campo sea de otra aplicación no quiere decir que no se pueda acceder. Creo que explorando ventanas podrías llegar a obtener el valor de ese campo, sin tener que pasarlo por el portapapeles.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 11-03-2011
broly7 broly7 is offline
Miembro
 
Registrado: jun 2008
Posts: 43
Poder: 0
broly7 Va por buen camino
Con el TABULADOR te refieres? O inyectando algo en el proceso.
Responder Con Cita
  #6  
Antiguo 12-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A partir de buscar y encontrar la ventana de la aplicación, creo que se pueden encontrar las "ventanas hijas" de esa y por ahí puedes llegar a controles que deriven de TWindows (por ejemplo un Edit) y acceder a ellos.
No se si eso te podría servir, pero creo que puede ser un camino viable.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 12-03-2011
broly7 broly7 is offline
Miembro
 
Registrado: jun 2008
Posts: 43
Poder: 0
broly7 Va por buen camino
Y alguna forma de bypasear ese error?
Quizas jugando un poco mas con el clipboard, nose, la verdad necesito ayuda.
Responder Con Cita
  #8  
Antiguo 14-03-2011
broly7 broly7 is offline
Miembro
 
Registrado: jun 2008
Posts: 43
Poder: 0
broly7 Va por buen camino
Por si alguno en un futuo le sirve, lo he resuelto lo mas guarramente posible probando cosas. Y es llamando a la función que da error con un timer de 1ms por ejemplo, aunque sea muy guarro dejo la garantía de que funciona y seguro que a alguien le servirá.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con Clipboard madiazg Gráficos 3 30-04-2010 17:22:46
como uso el Clipboard? aprendizdelphi OOP 4 10-03-2008 15:36:59
Clipboard.GetTextBuf ixMike API de Windows 3 26-09-2006 19:23:33
Una clase al ClipBoard bustio OOP 2 07-07-2004 00:35:16
Error con Clipboard chavetaz API de Windows 4 13-11-2003 19:30:25


La franja horaria es GMT +2. Ahora son las 17:56:43.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi