FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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. |
#2
|
||||
|
||||
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. |
#3
|
||||
|
||||
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. |
#4
|
||||
|
||||
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> 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. |
#5
|
||||
|
||||
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. Última edición por Chris fecha: 27-10-2007 a las 00:56:56. |
#6
|
||||
|
||||
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. |
#7
|
||||
|
||||
Hola,
Cita:
|
#8
|
||||
|
||||
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. |
|
|
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 |
|