Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2014
JuanOrtega JuanOrtega is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 130
Poder: 13
JuanOrtega Va por buen camino
gracias por la ayuda ecfisa , una pregunta ¿ si ejecuto como admin en windows seven evito el problema ?
Responder Con Cita
  #2  
Antiguo 15-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lepuke.
Cita:
Empezado por Lepuke Ver Mensaje
...¿ si ejecuto como admin en windows seven evito el problema ?
No, tenes que usar el segundo código.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 16-04-2014
JuanOrtega JuanOrtega is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 130
Poder: 13
JuanOrtega Va por buen camino
ahora mismo estoy en XP lo probe , no tira ningun error de compilacion pero cuando arrastro el archivo me tira un error de denegacion por parte de windows , despues lo pruebo en mi maquina virtual donde tengo seven , pero ¿ es normal que el segundo codigo me tire ese error en XP ?
Responder Con Cita
  #4  
Antiguo 16-04-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Lepuke,

Cita:
Empezado por ecfisa
...A partir de Windows 7,por motivos de seguridad, se filtran los mensajes enviados de una aplicación a otra (entre los que está Drag&Drop), por lo que previamente hay que elevar el privilegio mediante la función ChangeWindowMessageFilter...
Probé el código sugerido en el Msg #3 en Delphi 7 bajo Windows 7 Professional x32 en una Máquina Virtual con VMWare, tanto el que usa la función ChangeWindowMessageFilter, como el que no la utiliza y en ambos casos funciono correctamente tanto con un usuario con privilegios de administrador, como con un usuario con privilegios estándar.

Cita:
Empezado por Lepuke
...¿es normal que el segundo código me tire ese error en XP?...
Si es lo que debe suceder, esto se debe a que la función ChangeWindowMessageFilter esta disponible a partir de Windows Vista y Windows Server 2008 en adelante, para Windows XP te sugiero el código que no utiliza la función ChangeWindowMessageFilter del Msg #3.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 16-04-2014 a las 02:11:07.
Responder Con Cita
  #5  
Antiguo 16-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lepuke.

No dispongo de Windows XP para probarlo, pero podrías intentar de este modo:
Código Delphi [-]
...
uses ShellApi;

const
  MSGFLT_ADD = 1;

var
 ChangeWindowMessageFilter: function (msg: Cardinal; dwFlag : Word):BOOL; stdcall;

procedure TForm1.DragDropFiles(var Msg: TMessage);
var
  Cont,i : integer;
  FName : array [0..MAX_COMPUTERNAME_LENGTH+MAX_PATH] of char;
begin
  Cont:= DragQueryFile(Msg.WParam, $FFFFFFFF, FName, 255)-1;
  if (Win32MajorVersion = 6)and(Win32MinorVersion > 0) then
    for i:= 0 to Cont do ChangeWindowMessageFilter (i, MSGFLT_ADD);
  for i := 0 to Cont do
  begin
    DragQueryFile(Msg.WParam, i, FName, 255);
    ListBox1.Items.Add(FName);
  end;
  DragFinish(msg.WParam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if (Win32MajorVersion = 6)and(Win32MinorVersion > 0) then
  begin
    @ChangeWindowMessageFilter:= GetProcAddress(LoadLibrary('user32.dll'),'ChangeWindowMessageFilter');
    if Assigned (ChangeWindowMessageFilter) then
    begin
      ChangeWindowMessageFilter (WM_DROPFILES, MSGFLT_ADD);
      ChangeWindowMessageFilter (WM_COPYDATA, MSGFLT_ADD);
      ChangeWindowMessageFilter ($0049, MSGFLT_ADD);
    end;
  end;
  DragAcceptFiles(Handle, True);
  ListBox1.Items.Clear;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-04-2014 a las 03:31:44.
Responder Con Cita
  #6  
Antiguo 16-04-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Lepuke,

Cita:
Empezado por ecfisa
...No dispongo de Windows XP para probarlo...
El código del Msg #3 que no utiliza la función ChangeWindowMessageFilter y el código del Msg #8 que verifica si la versión de Windows es superior a XP para aplicar la función ChangeWindowMessageFilter, fueron probados en Delphi 7 bajo Windows XP Professional x32 en una Máquina Virtual con VMWare y funcionaron ambos correctamente según lo esperado.

Espero sea útil

Nelson.
Responder Con Cita
  #7  
Antiguo 16-04-2014
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.235
Poder: 20
ElKurgan Va camino a la fama
Thumbs up

Muchas gracias por el aporte, maestros...

Funciona perfectamente
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
Drag and Drop... dvlt .NET 0 07-02-2008 09:42:59
Drag & Drop DanForever Varios 2 01-06-2006 14:24:25
Drag&Drop !!! rafstyle OOP 6 27-07-2004 04:39:41
Drag&Drop xflo Lazarus, FreePascal, Kylix, etc. 0 13-10-2003 19:31:22
Drag & Drop cone220 Varios 1 26-05-2003 19:06:34


La franja horaria es GMT +2. Ahora son las 23:00:29.


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