Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=26)
-   -   Sólo funciona en modo administrador (https://www.clubdelphi.com/foros/showthread.php?t=96571)

Angel.Matilla 25-01-2024 10:37:05

Sólo funciona en modo administrador
 
A ver como lo explico, porque ni yo soy capaz de entenderlo. Tengo una aplicación hecha en BCB 6 corriendo en tres equipos. Hace poco han cambiado dichos equipos, reemplazándolos por otros más potentes con Windows 11. Lo curioso es que en dos de ellos la aplicación funciona a la perfección como si no se hubiera hecho nada pero en el tercero, para que funcione correctamente hay que ejecutarla como administrador. De esta manera no hay ningún problema, pero si se ejecuta como un usuario no hay manera de que arranque bien.

Quien cambió la instalación en este equipo dejó un fichero BAT con estas líneas:
Cita:

net use W: \\pptoledo\D\DatAfi21$
C:\>cd GesAfi21
.\Afiliados.exe
¿Alguien puede explicarme por qué ese comportamiento tan extraño? O bien cómo hacer para que siempre se ejecute en modo administrador sin tener que andar con ficheros al margen de la aplicación

marco3k 25-01-2024 14:05:36

Para que ejecute en modo administrador sólo activa el checkbox del acceso directo del sistema "ejecutar este programa como administrador" y con eso ya se ejecutará de esa manera.
Ejemplo:

https://1drv.ms/i/s!Aux601Sf-Jcbg137...XBVAI?e=5cPQ7R

Neftali [Germán.Estévez] 25-01-2024 14:06:33

Habría que saber el "no hay manera de que arranque bien", ¿Qué significa?
Es difícil saber qué puede estar pasando sin más información.
¿Algo en el visor de eventos de Windows? ¿Alguna pista de lo que puede estar fallando?

Pueden se temas de seguridad, políticas, acceso a recursos,...

marco3k 25-01-2024 14:26:56

Por otro lado esas lineas:
Cita:

net use W: \\pptoledo\D\DatAfi21$
C:\>cd GesAfi21
.\Afiliados.exe
Cita:

net use W: \\pptoledo\D\DatAfi21$
Esta línea crea una unidad de red "W" referenciando a una capeta compartida en la unidad D carpeta DatAi21 y que esta parcialmente oculto (por el sigo dólar), supongo que es una base de datos en access o similar por que si fuera firebird no seria necesario hacer eso.


Cita:

C:\>cd GesAfi21
Esta línea cambia el directorio a la carpeta donde esta instalado la aplicación en la pc local.


Cita:

.\Afiliados.exe
Esta linea ejecuta la aplicación, quizas aquí este el problema porque no le indicas que se ejecute en modo administrador. Lo que debes hacer es crear manualmente la unidad de red, luego haces un acceso directo de tu aplicación y ahí le cambias las propiedades y le pones "ejecutar este programa como administrador" como te escribí en mi anterior post y desde el acceso directo ejecutas la aplicación.

Neftali [Germán.Estévez] 25-01-2024 17:25:24

Cita:

Empezado por marco3k (Mensaje 554152)
Para que ejecute en modo administrador sólo activa el checkbox del acceso directo del sistema "ejecutar este programa como administrador" y con eso ya se ejecutará de esa manera.


La solución no es ejecutar como administrador una aplicación que no debe ejecutarse así.
Es más, aplicaciones normales NO DEBERÍAN ejecutarse como Administrador.
Lo que hay que hacer, es saber es porqué una aplicación normal falla si no se ejecuta de ea manera.

marco3k 25-01-2024 17:29:02

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 554155)
La solución no es ejecutar como administrador una aplicación que no debe ejecutarse así.
Es más, aplicaciones normales NO DEBERÍAN ejecutarse como Administrador.
Lo que hay que hacer, es saber es porqué una aplicación normal falla si no se ejecuta de ea manera.


Claro, no es una solución definitiva pero al menos lo sacará del apuro mientras encuentra la solución final.

juanelo 25-01-2024 18:30:23

Lo que tambien probaria es checar la configuracion del DEP , muchas cosas pueden pasar si Windows considera a tu aplicacion "no digna" de correr en sus terrenos (que se lea en son de broma).

Garada 25-01-2024 18:53:11

Comprueba que el usuario del PC que falla tiene permisos de escritura en la carpeta compartida donde está el programa.
Puedes también usar la utilidad Process Monitor para comprobar que operaciones quiere hacer el programa y cuales falla para corregir los permisos.
https://learn.microsoft.com/es-es/sy...nloads/procmon

Angel.Matilla 26-01-2024 10:32:44

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 554153)
Habría que saber el "no hay manera de que arranque bien", ¿Qué significa?
Es difícil saber qué puede estar pasando sin más información.
¿Algo en el visor de eventos de Windows? ¿Alguna pista de lo que puede estar fallando?

Pueden se temas de seguridad, políticas, acceso a recursos,...

La aplicación al arrancar va a buscar los datos básicos de la misma que se guardan, en esa versión, en un fichero INI. Si no entra como administrador no encuentra nunca el fichero y hay que volver a registrar los datos de arranque: Titular, domicilio, etc. Lo del visor de eventos no se me había ocurrido.
Cita:

Empezado por marco3k (Mensaje 554154)
Por otro lado esas lineas:

Esta línea crea una unidad de red "W" referenciando a una capeta compartida en la unidad D carpeta DatAi21 y que esta parcialmente oculto (por el sigo dólar), supongo que es una base de datos en access o similar por que si fuera firebird no seria necesario hacer eso.

Lo curioso es que esa unida de red ya está definida antes de ejecutar ese BAT. La BB.DD. es Paradox en esta versión del programa.
Cita:

Empezado por juanelo (Mensaje 554157)
Lo que tambien probaria es checar la configuracion del DEP , muchas cosas pueden pasar si Windows considera a tu aplicacion "no digna" de correr en sus terrenos (que se lea en son de broma).

A mi me preocupa más que los otros dos equipos, con indética instalación funcionan correctamente sin necesidad de entrar en modo administrador.
Cita:

Empezado por Garada (Mensaje 554158)
Comprueba que el usuario del PC que falla tiene permisos de escritura en la carpeta compartida donde está el programa.
Puedes también usar la utilidad Process Monitor para comprobar que operaciones quiere hacer el programa y cuales falla para corregir los permisos.
https://learn.microsoft.com/es-es/sy...nloads/procmon

Sí los tiene pero no está demás asegurarse.

Gracias a todos por las respuestas.

marco3k 26-01-2024 17:10:07

Cita:

Lo curioso es que esa unida de red ya está definida antes de ejecutar ese BAT. La BB.DD. es Paradox en esta versión del programa.

Claro, lo que pasa con ese bat es asegurar que siempre este conectado la unidad de red, que a veces sucede que se desconecta por x motivos y luego hay que reconectar.


La franja horaria es GMT +2. Ahora son las 00:19:41.

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