FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
FileExists() no lee .dll en system32
Buena tarde Foro, tengo el siguiente problema con la función FileExists(nombrearchivo). Busco un archivo con extensión .dll (nombrearchivo.dll), sin embargo la función me regresa (False) que no existe este archivo. Sólo lo hace para archivos que están en esa carpeta (Windows\System32) y con extensión .dll, si busco otro tipo de archivo si lo encuentra. Estoy utilizando Delphi 7, Windows 7 64 Bits. Tengo Avira y Superantispywere. El usuario con el que entro es tipo administrador y tiene permiso de acceso total sobre esta carpeta.
Antes los podía encontrar sin problema. Tuve problemas con el Avast y decidí cambiarlo por Avira, no se si la instalación haya cerrado algún acceso o cambiado la configuración de esta carpeta. Ya probé habilitando opciones en carpeta "Mostrar archivos de sistema". Si copio este archivo a otra carpeta p.ejemplo System, lo encuentra sin problema pero en System32 no lo identifica. ¿Alguien tiene idea de qué puede ser? Agradezco alguna ayuda. |
#2
|
||||
|
||||
Está claro que es problema de permisos, tendrás que investigar un poco más con se nuevo programa que has instalado.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
No puede probar en Win7 64bits pero he probado en Win7 32bits y la siguiente función funciona Ok.
Saludos. |
#4
|
|||
|
|||
Gracias por responder. Pues el programa está en delphi y simplemente lo que hice fue actualizar el proyecto. Voy a probar la solución que planteas escafandra.
Les comento en cuanto tenga resultados. |
#5
|
|||
|
|||
Cargué la función de escafandra pero sigue sin ver a los archivos .dll. Me tendré que pelear con permisos y características de la carpeta.
Gracias por sus comentarios. |
#6
|
||||
|
||||
Prueba hacer esto:
Mi PC Menu --> Herramientas, Lengueta [Ver], Busca y desmarca [] Ocultar las extensiones de archivo para tipos de archivo conocidos Haber si con esto te funciona. Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. |
#7
|
|||
|
|||
Gracias, tampoco funcionó sigue sin encontrar los archivos .dll en el system32. Sigo buscando permisos o algún bloqueo para esos archivos.
|
#8
|
||||
|
||||
Cita:
Sólo a fines de prueba y delimitar el motivo, fijate si de este modo te muestra los archivos .dll en el ListBox: Aunque dudo que lo haga si no te resultaron las propuestas anteriores ... Saludos. Edito: Acabo de encontrar un enlace que tal vez te sirva revisar: FindNextFile fails on 64-bit Windows?
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 24-05-2013 a las 20:53:43. |
#9
|
|||
|
|||
Gracias, lo pruebo y te comento...
|
#10
|
||||
|
||||
to_to,
Cita:
Cita:
Cita:
1- La función FileExists de Delphi funciona correctamente (Windows\System32) en una Máquina Virtual con Windows 7 Professional x64 y Delphi 7. 2- El código sugerido en los Msg #3 y #8 funciona correctamente (Windows\System32) en una Máquina Virtual con Windows 7 Professional x64 y Delphi 7. Pregunto: 1- ¿Si deshabilitas el antivirus Avira la función FileExists de Delphi funciona correctamente en Windows\System32?. 2- ¿Después del problema con el antivirus Avast y antes de instalar Avira se presentaba el problema señalado?. 3- ¿El problema solo ocurre después de instalar Avira?. 4- ¿Hay alguna opción en Avira que permita ignorar programas o directorios específicos en su proceso de detección de amenazas?. Es probable que el problema sea originado en Avira Antivirus por alguna opción de protección del sistema, te sugiero considerar las preguntas anteriores y revisar la configuración del programa en cuestión. Espero sea útil Nelson. Última edición por nlsgarcia fecha: 25-05-2013 a las 04:57:45. |
#11
|
||||
|
||||
Buenas noches, gracias por contestar.
En cuanto al código de prueba para cargar los archivos en el listbox, curiosamente si carga los .dll pero no el archivo que necesito. Estoy por revisar los permisos o propietario del archivo ya que como lo pasaron, es probable que el usuario propietario no tenga permisos sobre la carpeta del system32. Estoy intentando crear ese mismo archivo (con el mismo nombre) con el usuario que corre la aplicación. Antes de crearlo le otorgaré permisos al usuario con el que estoy probando. Pregunto: Cita:
Cita:
Cita:
Cita:
|
#12
|
||||
|
||||
to_to,
Cita:
1- ¿La función FileExists de Delphi falla con todos los archivos .dll en Windows\System32 o solo uno en específico?. 2- ¿Puedes desinstalar el Antivirus Avira y probar si el problema continua?. Te comento: 1- En el Msg #1 indicas que utilizas un usuario tipo Administrador por lo cual no parece un problema de permisología, si y solo si realmente es un usuario tipo Administrador con acceso total al sistema. 2- Revisa la máquina en cuestión con otro antivirus, te recomiendo NIS 2013 de Symantec para validar que esta libre de Malware. 3- Revisa estos links: Cita:
Nelson. |
#13
|
||||
|
||||
Primero debería probar en otro ordenador que no tenga problemas de virus.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#14
|
||||
|
||||
Algunos virus protegen determinados archivos vitales para ellos. Lo hace realizando bien hook a la API o bien desde el Kernel. Si has estado infectado piensa en la posibilidad de seguir estándolo.
Saludos. |
#15
|
||||
|
||||
System32 esta en el PATH del sistema por lo que cualquier ejecutable que coloques ahí, lo puedes invocar desde la línea de comando desde cualquier ruta en forma directa.
Por otra parte, en el FileExists() no coloques la ruta directa, sino que la variable del sistema. Por ejemplo para la carpeta de Windows sería %windir% lo mismo para system32. Puedes buscar la lista completa en Google colocando variables sistema windows o buscar información sobre como hacerlo mediante WMI. No se que problemas habras tenido con Avast pero al igual que este, Avira permite excluir el escaneo de archivos o carpetas. Pero no es recomendable para nada hacerlo, ya que los malwares se alojan y "crean" ahí. Parte desinfectado el sistema: - Corre CCleaner, tanto archivos como registro de Windows. - Luego corre Malwarebytes. |
#16
|
|||
|
|||
Gracias por sus ideas y aportes, en verdad que me me están dando más alternativas para encontrar realmente el problema. Tuve que suspender momentáneamente esta parte del desarrollo para continuar con las pruebas, por el momento lo puse en otro directorio y de ahí leo el archivo. Espero mañana retomar este caso para aplicar las opciones que me han dado y encerrar el problema.
|
#17
|
|||
|
|||
Hola nuevamente, he realizado lo que me han sugerido y en orden de ideas les comento lo siguiente:
1.- Probé en otro equipo (Win XP, no tengo otro con Win 7) y no tiene problema para localizar el archivo, lo encuentra y lo lee correctamente. 2.- Desinstalé el Avira y continua el mismo problema. 3.- Revisé mi equipo con 4 diferentes antivirus (superantispyware, dr. cureit, mabam, fileassassin) detecté algunos troyanos pero no de gravedad. Quedó limpiecita la lap y además pasé el ccleaner y aún continua el problema. 4.- Modifiqué permisos, asigné control total sobre los archivos que quiero buscar y leer a todos los usuarios y nada. Ahora bien, si trato de leer la carpeta system32 incluso con otra aplicación que no esté en delphi, tampoco "ve" los archivos en esa carpeta, ve otros archivos .dll pero el que yo creo o modifico no los "ve", con el navegador de windows si se ven. Lo curioso es que cuando paso este archivo a otra carpeta lo "ve" sin problema. Supongo que ha de ser alguna "restricción" o configuración de la seguridad de la carpeta junto con la de los archivos que he copiado ahí. Agradeceré alguno otra sugerencia. |
#18
|
|||
|
|||
Por otro lado y al determinar que el problema no es la función del fileExists(), no se si sea conveniente continuar este hilo en este foro, por mi parte también he abierto un tema en cuanto a la seguridad y permisos de Win 7 en el foro "infospyware". Si me lo permiten, me gustaría dejar este hilo un poco más de tiempo para determinar el error real y postear aquí la solución que pudiera encontrar.
Gracias nuevamente. |
#19
|
||||
|
||||
¿no será Windows 7? El archivo que intentas leer, ¿es de la instalación de windows, o bien lo has puesto tú?
Lo pregunto porque en W7, si un programa pone un archivo en windows\system y demás, si no tiene privilegios de administrador, en realidad te lo coloca en c:\users\<nombre usuario>\ en una carpeta oculta. En principio, eso es totalmente transparente a los usuarios, pero quizás tenga algo que ver. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#20
|
|||
|
|||
Es un archivo que yo he creado y lo copié en el windows\system32. Como lo mencioné no tenía ese problema, antes lo podía localizar desde cualquier aplicación. Ahora sólo lo veo en el explorador de windows pero al tratar de recuperar o abrir este archivo desde delphi no es visible, la función fileexists() envía false ya que no lo encuentra. Ya busqué en las carpetas de usuarios pero no se si tienen un nombre en especial la carpeta oculta que mencionas porque en la única carpeta que lo encontré fue en "recientes".
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Fallo copyfile y fileexists en servicio windows y red | Ivanzinho | Varios | 4 | 13-08-2013 10:50:59 |
Duda con FileExists | nena_yei | OOP | 12 | 04-11-2010 18:20:05 |
FileExists o DirectoryExists pero no solo en el actual | pnikkosis | OOP | 2 | 01-12-2009 05:24:07 |
Fileexists sobre una red | Kipow | Varios | 2 | 26-05-2006 15:57:43 |
ShellExecute y "c:\WINDOWS\system32\telephon.cpl" | Durbed | API de Windows | 7 | 20-12-2005 22:33:04 |
|