Registrar una DLL como administrador desde nuestro ejecutable en Windows 7

2,873 views
Skip to first unread message

esteban micossi

unread,
Sep 17, 2012, 2:05:20 PM9/17/12
to publice...@googlegroups.com

Hola Grupo

El tema es registrar una DLL desde el programa que se ejecuta.
Esto en windows Xp lo hacia sin problemas, pero ahora en Windows 7 hay que entrar al CMD.EXE
como administrador y recien registrar la DLL, pero esto es forma manual.

Como hacemos ahora para registrar automaticamente una DLL como administrador ?
 
Esta rutina es la que utilizo, pero con Windos XP
 

declare long dllregisterserver in [\mysystem\xzip.dll]
registra=getenv("windir")+'\system32\'

if dllregisterserver() = 0
 *   WAIT WINDOW 'DLL registrado'
else
 !&registra.regsvr32.exe "\mysystem\xzip.dll"
endif

Con esta rutina me salta el error "No se puede encontrar el punto de entrada DLLREGISTERSERVER en la DLL."

Me dijeron que es por que tengo que entrar como administrador si estoy en windows 7

Bueno amigos, muchas gracias y espero se entienda lo que preciso

Saludos
Esteba Micossi


 

Alfonso Arce Silvestre

unread,
Sep 17, 2012, 2:13:41 PM9/17/12
to publice...@googlegroups.com
Independientemente de los permisos de de administrador, la "ruta" debe estar completa

saludos

Carlos Alfaro

unread,
Sep 17, 2012, 9:36:56 PM9/17/12
to publice...@googlegroups.com

Saludos estimado Esteban:

 

Cuando decís “como administrador”, ¿te referís que ingresas a Windows con privilegios de administrador?

 

Puede ser que esto te sirva, te recomiendo que corras tu ejecutable usando el botón secundario de mouse, en la lista que te muestra elijas, run as administrator o ejecutar como administrador.

 

Bendiciones.

 

Carlos Alfaro

--
 
 
 

Desarrollos EfiMax

unread,
Nov 1, 2013, 3:16:25 PM11/1/13
to publice...@googlegroups.com

Esteban, se que el mensaje es algo viejo, sin embargo tengo exactamente el mismo problema, pero en Win8

puedes comentar como lo resolviste sin tener que abrir una consola en modo administrador en cada Pc para el registro manual de dll adicionales?

Gracias.

HernanCano

unread,
Nov 1, 2013, 3:56:57 PM11/1/13
to publice...@googlegroups.com

Hola.

He visto mucho este tipo de mensajes, y he pensado en lo sgte:
En muchos foros la respuesta es "Ejecutar como administrador".

¿Has intentado lo sgte:...?  (( con click derecho, ¿estamos?))


Staff de Desarrollos EfiMax

unread,
Nov 1, 2013, 4:54:04 PM11/1/13
to publice...@googlegroups.com

Herman no se si tu comentario es sarcástico o no

 

Pero si es en serio, la idea es no abrir una consola o usar el Shell de Windows a un exe o un bat que haga el registro de la dll, que tendría que instruir a cada usuario,

 

anexo parte del hilo original que al parecer no lo leíste antes de opinar:

______________________________________________________________________

El tema es registrar una DLL desde el programa que se ejecuta.
Esto en windows Xp lo hacia sin problemas, pero ahora en Windows 7 hay que entrar al CMD.EXE
como administrador y recien registrar la DLL, pero esto es forma manual.


Como hacemos ahora para registrar automaticamente una DLL como administrador ?

 

Esta rutina es la que utilizo, pero con Windos XP

 

 declare long dllregisterserver in [\mysystem\xzip.dll]
registra=getenv("windir")+'\system32\'

if dllregisterserver() = 0
 *   WAIT WINDOW 'DLL registrado'
else
 !&registra.regsvr32.exe "\mysystem\xzip.dll"
endif

Con esta rutina me salta el error "No se puede encontrar el punto de entrada DLLREGISTERSERVER en la DLL."

_________________________________________________________________________

Evidentemente yo sé el procedimiento pero no los usuarios remotos

 

- El registro de los dll's ha de ser programática no interactiva por parte del usuario

- son cerca de 320 usuarios remotos distribuidos con Win8 la mayoría están como administrador pero no permite el registro de dll's vía api aun como administrador

- no quiero generar un instalador para un par de dll's

- los equipos con winxp y con uac desactivado no tuvieron problema en win 7.

- las dll no están en las carpetas de Windows sino en una carpeta c:\sistema\dll's

- el api para correr como otro  usuario exige un password y la mayoría son administradores sin password.

 

 

If  comentario = Sarcástico

            ? "¿estamos?"

Else

            ? "Respetuosamente"

EndIF

HernanCano

unread,
Nov 1, 2013, 5:22:00 PM11/1/13
to publice...@googlegroups.com

>>>... la idea es no abrir una consola o usar el Shell ... o un bat ..., que tendría que instruir a cada usuario

En las imágenes no se usa consola, shell o bat; aunque sí habría que instruir al usuario.

>>>... son cerca de 320 usuarios remotos distribuidos con Win8 la mayoría están como administrador pero no permite el registro de dll's vía api aun como administrador

Sorry...no lo entendía tan así......

----------------------------------------------------------------------------------------------------------------------------------------------

Pero necesariamente la solución propuesta se basa en que debas reescribir tu app para que utilice un lanzador.

¿Y si a cada usuario le muestras la imagen que te indiqué de manera que cada uno sepa qué debe hacer (sólo click derecho)? Tampoco, pues cómo hacer que cada usuario sepa que debe abrir la imagen? Si sólo lo saben ocho, ¿cómo se hace para que los otros 312 vean la imagen? O se le dice a cada uno por celular (¿y si es de otro país?) o modificas el prg inicial para que lea los emails automáticamente...... pero es que como "no se desea un instalador para un par de dll's"......

Disculpa..... pero no llego......

----------------------------------------------------------------------------------------------------------------------------------------------



El viernes, 1 de noviembre de 2013 15:54:04 UTC-5, Desarrollos EfiMax escribió:

Herman no se si tu comentario es sarcástico o no

Pero si es en serio, la idea es no abrir una consola o usar el Shell de Windows a un exe o un bat que haga el registro de la dll, que tendría que instruir a cada usuario,

anexo parte del hilo original que al parecer no lo leíste antes de opinar:

Evidentemente yo sé el procedimiento pero no los usuarios remotos

Fernando D. Bozzo

unread,
Nov 1, 2013, 5:51:20 PM11/1/13
to publice...@googlegroups.com
Hola EfiMax:

No sé si esto se pueda, tal vez sí, pero al menos te dejo la idea.

¿Y que pasa si hacen un EXE instalador al que se le den permisos de administrador para que cualquier usuario lo pueda ejecutar? Me refiero a que podría ser posible en la red a nivel de directorio activo o de políticas de usuario que un EXE específico pueda realizar tareas administrativas independientemente de quien lo ejecute.

Y si esto no es posible, Windows dispone de herramientas administrativas para distribuir software de forma centralizada, cosa que se programa que software debe instalarse y se instala solo. Esto ví que lo usan en donde trabajo, pero no tengo idea de como se llama o que herramienta es, solo sé que es de Microsoft.

Saludos.-

Staff de Desarrollos EfiMax

unread,
Nov 1, 2013, 6:09:20 PM11/1/13
to publice...@googlegroups.com

 

Si gracias Fernando es lo que tendremos que hacer; sin embargo este tipo de escenarios se repetirá con cada actualización que requiera un dll/OCX  nuevo que es lo que queríamos evitar.

 

generar un instalador para las librerías adicionales en este caso un par, y descargarlo automáticamente desde nuestro servidor cuando se requieran y pedir la interacción del usuario ya que los equipos están distribuidos  remotamente y se conectan por Internet.

 

Gracias por la atención.

menalm

unread,
Sep 18, 2012, 4:50:18 AM9/18/12
to publice...@googlegroups.com, calf...@yahoo.com.ar
DECLARE LONG DllRegisterServer IN AudioCapture.dll

Reply all
Reply to author
Forward
0 new messages