FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Aplicacion en HKEY_CLASSES_ROOT, '\exefile\shell\open\command'
Hola amigos,
Estoy desarrollando una aplicación, que cada vez que el usuario ejecuta una aplicación, se ejecuta primero la mía y entonces mi aplicación es la que decide si se ejecuta, o no la aplicación que pidió el usuario, eso lo logre poniendo esto en el registro HKEY_CLASSES_ROOT, '\exefile\shell\open\command','', 'C:\WINDOWS\system32\ MiAplicacion.exe "%1" %*'); y ejecuto las aplicaciones con este código, WinExec(pansichar(AcaminoYParametros), SW_SHOWNORMAL); El problema es, que cuando lo instalo la aplicación, solo funciona por una cuanta administrativa. Alguien sabe que esta pasando o que puedo hacer para que funcione |
#2
|
||||
|
||||
Me da la sensación que ese parametro en la clave solo esta disponible para una cuenta administrativa.
__________________
|
#3
|
||||
|
||||
Ohhhh
la idea esta super... en realidad yo hice tal programa hace unos años y me funcionaba bien. El único problema que tuve era que guardaba las aplicaciones corridas en un archivo creado en la cuenta de Administrador... entonces cuando lo abría tenia problemas por los permisos que tenía el archivo. Lo mismo sucedería en tu caso si MiAplicacion.exe está sin permisos de ejecución (por ejemplo).
Explicame un poco mas pues con los datos que diste no me queda clara la causa... Saludos! |
#4
|
|||
|
|||
Mil gracias.
Ñoooooooooo, muchas gracias por la ayuda, nunca se me ocurrió que era un problema de permisos, lo que pasaba era que antes de ejecutarse el leía un archivo, donde se encuentran las aplicaciones denegadas por su Md5, y este archivo estaba ciendo leído por otra aplicación mía, esto creaba un confito y no me dejaba leer.
Este problema ya esta arreglado, ahora lo que ocurre es, que me pueden hacer un programa en Delhi o cualquier otro lenguaje de programación que ejecute cualquier aplicación, esto impediría que se ejecutase primero mi programa, burlando todo lo que hice. Por ejemplo ponen esto en delphi WinExec(pchar('aplicacion_restringida.exe'), SW_SHOWNORMAL); Y así me ejecutan (aplicacion_restringida.exe). Gracias por adelantado. Última edición por l30 fecha: 01-07-2007 a las 08:16:28. |
#5
|
||||
|
||||
No era más sencillo manejar las claves del registro que restrigen o permiten las aplicaciones?? En lugar de hacer un software que "controla" las mismas podría hacerse un administrador que inserte o borre las claves del registro.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#6
|
||||
|
||||
Cita:
De todas formas, esto es ponerle puertas al campo, porque ya sea con el método que propone l30 o por medio de directivas de grupo, solo se impide ejecutar aplicaciones desde el explorador de windows. Si la aplicación se ejecuta desde el cmd.exe o desde cualquier otro programa, esto no la detendrá. La solución es hacer un hook en la API Createprocess, pero creo que eso ya son palabras mayores ... |
#7
|
|||
|
|||
Gracias y mil gracias
Bueno Seoane, muchas gracias por la ayuda, creo que me voy a tener que fajar con lo del hook. Espero que no este muy difícil, porque realmente me hace falta.
|
#8
|
||||
|
||||
Ok
En realidad no hace mucho encontré las entradas de registro hacen lo que dice l30..., bastante interesante pero solo funciona para aquellas personas que no saben renombrar un archivo (lo dicho por seoane)
Código:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "DisallowRun"=dword:00000001 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun] "1"="calc.exe" Código:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "RestrictRun"=dword:00000001 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun] "1"="calc.exe" "2"="explorer.exe" El método funciona pero te doy un plus a tu aplicación... simplemente "miras" la lista de procesos y Finalizas aquellos que su MD5 no esté "registrado" en tu programa. (claro que sería mejor apriori pero hasta hacerlo...)
Lo que comentaba seoane del hook... suena bonito. Saludos |
#9
|
|||
|
|||
Gracias a todos
Si, me parece que la solución a mi problema, es hacer un hook, en la API Createprocess, como decía seoane, e buscado sobre el tema y en español me parece que hay muy poca documentación, voy a abrir un nuevo hilo para ver si alguien se embulla.
Nuevamente Gracias por todo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Aplicacion se 'cuelga' al llamar a OPEN (tquery) | halcon_rojo | Conexión con bases de datos | 3 | 15-11-2006 15:18:58 |
Guardar en txt todo el texto del command prompt | locojoan | Varios | 4 | 09-04-2006 20:24:21 |
Unexpected end of command | osyaemos | Firebird e Interbase | 6 | 15-07-2005 12:04:29 |
Ejecutar shell explorer.exe desde otra aplicación | Pablo Carlos | API de Windows | 13 | 15-07-2004 16:37:30 |
Drag&Drop sin shell | xflo | Varios | 2 | 16-10-2003 00:30:55 |
|