Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-10-2007
Avatar de German
German German is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 133
Poder: 22
German Va por buen camino
Exclamation Drag & Drop en Vista

Después de probar en Vista una aplicación inicialmente enfocada a XP, me he dado cuenta de que el mensaje WM_DROPFILES no funciona. Por ejemplo, al arrastrar un archivo sobre una ventana, este mensaje no es recibido. Parece ser que ha sido desactivado en Vista "por razones de seguridad". Me pregunto yo que razones de seguridad pueden existir para impedir decidir a una aplicación aceptar o no un archivo... ¿Sera por si algún programador con solo 2 neuronas decide aceptar cualquier archivo que arrastren a su aplicacion?.

En fin...

¿Alguien se ha topado con este problema y ha encontrado algún método para poder "detectar el drop" sobre una ventana?

Salu2.
__________________
Tengo las manos llenas de dedos... Tengo los dedos llenos de teclas...
Tengo las teclas desordenadas... Tengo el desorden muy controlado...
Tengo el control en mis manos.

Última edición por German fecha: 25-10-2007 a las 02:29:00.
Responder Con Cita
  #2  
Antiguo 25-10-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Tienes razón, el mensaje se ha bloqueado por cuentiones de seguridad. Ahora, solo pueden recivir este mensaje las aplicaciones que tengan el mismo nivel de seguridad que la que ha enviado el mensaje.

No puedo pornerme al 100 en este momento para buscarle una solución a este problema, porque estoy en otro proyecto por el momento, pero me interesa muchísimo, que una aplicación en la que trabajo hace un del drag & drop de archivos. Creo que si no lo hubieras posteado no me hubiera dado cuenta.

Revisa este Hilo en los foros de MSDN, ahí hablan al respecto.

P.D: Parece que el nivel de seguridad que requiere una aplicación en vista se especifican por medio del manifiest del EXE, el mismo que se utiliza en XP para utilizar los temas visuales.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #3  
Antiguo 25-10-2007
Avatar de German
German German is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 133
Poder: 22
German Va por buen camino
Si, encontre ese post tras dar de alta el tema aqui. Tengo que hacer pruebas sobre ello. Ya comentare...

Gracias.
Salu2.
__________________
Tengo las manos llenas de dedos... Tengo los dedos llenos de teclas...
Tengo las teclas desordenadas... Tengo el desorden muy controlado...
Tengo el control en mis manos.
Responder Con Cita
  #4  
Antiguo 26-10-2007
Avatar de German
German German is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 133
Poder: 22
German Va por buen camino
Bueno, realmente se soluciona el problema con un manifest. La manera más cómoda es crear un archivo de texto que contenga el siguiente código:

Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
        <dependency>
                <dependentAssembly>
                        <assemblyIdentity
                                type="win32"
                                name="Microsoft.Windows.Common-Controls"
                                version="6.0.0.0"
                                processorArchitecture="X86"
                                publicKeyToken="6595b64144ccf1df"
                                language="*"
                        />
                </dependentAssembly>
        </dependency>
        <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
                <security>
                        <requestedPrivileges>
                                <requestedExecutionLevel
                                       level="requireAdministrator"
                                       uiAccess="false"/>
                        </requestedPrivileges>
                </security>
        </trustInfo>
</assembly>
Este archivo lo guardas en la misma carpeta donde se encuentre el ejecutable y con el mismo nombre, añadiendole ".manifest". Por ejemplo, si el ejecutable se llama "QuememosVista.exe" el archivo deberia llamarse "QuememosVista.exe.manifest".

También decir que es necesario reiniciar Vista despues del proceso de instalación del programa y el manifest. Hasta entonces no funciona el "drop".

Nota: Deberia funcionar igual añadiendo el archivo como recurso al ejecutable, aunque no lo he probado.

Salu2.
__________________
Tengo las manos llenas de dedos... Tengo los dedos llenos de teclas...
Tengo las teclas desordenadas... Tengo el desorden muy controlado...
Tengo el control en mis manos.
Responder Con Cita
  #5  
Antiguo 27-10-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Según leí

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>

</assembly>




Según leí en varios post ese "v3" puede darnos problemas al ejecutar la aplicación en XP, es mejor cambiarlo a v2.

Además, no es tan simple, talvez con ese level="requireAdministrator" no estaría pidiendo elevar el nivel de seguridad cada vez que ejecutemos la aplicación.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web

Última edición por Chris fecha: 27-10-2007 a las 00:56:56.
Responder Con Cita
  #6  
Antiguo 27-10-2007
Avatar de German
German German is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 133
Poder: 22
German Va por buen camino
En cuanto al v3, quizás tengas razón. Yo no he probado la aplicación en XP con el manifest, ya que el instalador que he preparado no añade el archivo manifest si no detecta Vista.

En cuanto a la parte level="requireAdministrator", quizá fuera mejor poner level="highestAvailable" (en principio el drop necesita del mismo nivel que el "origen", por lo que en teoría de esta manera serviría tanto para un administrador como para un usuario normal).

De todas formas, aun me queda por realizar bastantes pruebas en este sentido, por que también he detectado que después de reiniciar Vista, la aplicación no tiene permisos ni siquiera para cambiar archivos en su propia carpeta... y también he detectado que no permite añadir parámetros a accesos directos creados en según que parte del menú de inicio... me tiene contento Vista.

Salu2.
__________________
Tengo las manos llenas de dedos... Tengo los dedos llenos de teclas...
Tengo las teclas desordenadas... Tengo el desorden muy controlado...
Tengo el control en mis manos.
Responder Con Cita
  #7  
Antiguo 27-10-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.110
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Germán
De todas formas, aun me queda por realizar bastantes pruebas en este sentido, por que también he detectado que después de reiniciar Vista, la aplicación no tiene permisos ni siquiera para cambiar archivos en su propia carpeta... y también he detectado que no permite añadir parámetros a accesos directos creados en según que parte del menú de inicio... me tiene contento Vista.
No me extraña... pero terminarás haciéndote con ello Germán.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 27-10-2007
Avatar de German
German German is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 133
Poder: 22
German Va por buen camino
Cita:
Empezado por dec Ver Mensaje
No me extraña... pero terminarás haciéndote con ello Germán.
Quizás si me haga con ello, pero tal y como están las cosas, con el bajo porcentaje de usuarios que utilizan Vista, y no viéndome en la necesidad de construir aplicaciones que funcionen bajo este sistema, siempre termino por dejar aparcados estos temas por falta de interés...

Salu2.
__________________
Tengo las manos llenas de dedos... Tengo los dedos llenos de teclas...
Tengo las teclas desordenadas... Tengo el desorden muy controlado...
Tengo el control en mis manos.
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 en un form jmb1963 Varios 4 10-10-2007 15:08:02
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 21:00:52.


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