Page 1 of 2
Raro comportamiento en inicio de Windows
Posted: Tue Oct 26, 2010 2:11 pm
by jrestojeda
Hola a todos...
Estoy haciendo un sistema que inicia con Windows.
Lo primero que hago es leer un archivo INI de configuración con variables que se cargan y se usan en el sistema.
Ahora bien, si el sistema se inicia al arrancar Windows, el archivo INI no es encontrado, pero si seguido de eso lo ejecuto manualmente lo encuentra y funciona todo correctamente.
Dejo un ejemplo muy sencillo que no es mi sistema pero que reproduce el mismo error.
Code: Select all
#include "FiveWin.ch"
Function Main()
IF FILE( CurDrive()+ ":\"+CurDir()+"\Sistema.INI")
MsgInfo("Archivo Encontrado")
ELSE
MsgInfo("Archivo No Encontrado")
ENDIF
Return nil
El sistema operativo es Windows XP SP3.
Ejecuto manualmente por línea de comandos por única vez la siguiente sentencia para que inicie el programa al arrancar Windows:
Code: Select all
REG ADD hklm\software\microsoft\windows\currentversion\run /v Prueba /t reg_sz /d "C:\PRUEBA\PRUEBA.exe" /f
Alguien podría probar y ver si le sucede lo mismo, en tal caso ver si hay alguna solución para este problema.
Como dije antes, al iniciar con Windows no encuentra el INI, pero al ejecutarlo manualmente lo encuentra.
Desde ya muchas gracias...
Saludos, Esteban.
Re: Raro comportamiento en inicio de Windows
Posted: Wed Oct 27, 2010 12:51 pm
by jrestojeda
Re: Raro comportamiento en inicio de Windows
Posted: Wed Oct 27, 2010 1:18 pm
by FranciscoA
Esteban. Aquí una manera sencilla de iniciar un programa cuando inicia Windows (fuera de código, por supuesto)
Abrir la carpeta Inicio, y dentro de ella, crear un acceso directo al programa... y... "Muerto el zambo".
C:\Documents and Settings\xUsuario\Menú Inicio\Programas\Inicio
Saludos.
Re: Raro comportamiento en inicio de Windows
Posted: Wed Oct 27, 2010 1:22 pm
by hmpaquito
jrestojeda,
Pon un mensaje para ver los valores de Curdrive() y Curdir().
En alguna versión de xHarbour uno de los dos fallaba.
También puede ocurrir que la unidad no esté mapeada en ese punto y curdrive() no devuelva nada.
Saludos
Re: Raro comportamiento en inicio de Windows
Posted: Wed Oct 27, 2010 4:26 pm
by jrestojeda
FranciscoA wrote:Esteban. Aquí una manera sencilla de iniciar un programa cuando inicia Windows (fuera de código, por supuesto)
Abrir la carpeta Inicio, y dentro de ella, crear un acceso directo al programa... y... "Muerto el zambo".
C:\Documents and Settings\xUsuario\Menú Inicio\Programas\Inicio
Saludos.
No es lo que necesito, ya que no quiero que el usuario pueda borrar el acceso directo y que luego el programa no inicie. Un usuario común podría hacerlo.
En cambio del otro modo un usuario más avanzado podría deshabilitar el programa de inicio.
hmpaquito wrote:jrestojeda,
Pon un mensaje para ver los valores de Curdrive() y Curdir().
En alguna versión de xHarbour uno de los dos fallaba.
También puede ocurrir que la unidad no esté mapeada en ese punto y curdrive() no devuelva nada.
Saludos
Eso está bien, lo probé y el path que me muestra es el correcto. Por otro lado como dije antes, solo al iniciar windows no encuentra el archivo, si ejecuto manualmente el programa funciona. La unidad no es una unidad de red, es el disco local de la PC, y la misma partición en la que está el sistema operativo.
Re: Raro comportamiento en inicio de Windows
Posted: Wed Oct 27, 2010 4:38 pm
by acuellar
Esteba,
Si la maquina inicia con usuario de Active directory en una red, se puede colocar en la carpeta NETLOGON un .bat el cual se ejecuta colocandolo en el perfil de la cuenta del usuario.
Saludos,
Adhemar
Re: Raro comportamiento en inicio de Windows
Posted: Thu Oct 28, 2010 11:54 am
by jrestojeda
acuellar wrote:Esteba,
Si la maquina inicia con usuario de Active directory en una red, se puede colocar en la carpeta NETLOGON un .bat el cual se ejecuta colocandolo en el perfil de la cuenta del usuario.
Saludos,
Adhemar
Adhemar
No es este el caso. En este caso es todo localmente en la misma PC.
De todos modos muchas gracias!
Re: Raro comportamiento en inicio de Windows
Posted: Thu Oct 28, 2010 11:55 am
by jrestojeda
Alguien probó el código que puse arriba??
Es muy simple, pero tiene el problema que comento.
Si alguien hace unas pruebas estaré agradecido si me comenta que le sucede.
Desde ya muchas gracias.
Saludos, Esteban.
Re: Raro comportamiento en inicio de Windows
Posted: Thu Oct 28, 2010 12:22 pm
by Antonio Linares
Esteban,
Prueba a hacer:
MsgInfo( CurDrive()+ ":\"+CurDir()+"\Sistema.INI")
y comprueba si en _ muestra lo mismo
Re: Raro comportamiento en inicio de Windows
Posted: Thu Oct 28, 2010 1:42 pm
by jrestojeda
Antonio...
Ahi la cuestión!!
Al iniciar desde la clave de registro el MsgInfo muestra: "C:\Document and Settings\Esteban\Sistema.ini"
Pero por otro lado en la ejecución manual del programa el MsgInfo muestra: "C:\Prueba\Sistema.ini"
Creo que está claro el error con ese dato.
Ahora bien, no me cierra con por qué de la cuestión. Ya que el ejecutable no se encuentra en ese directorio. Creía que CurDrive()+":\"+CurDir() siempre me mostraba el path de donde se encuentra el exe que se está ejecutando.
Es un error de Windows o un bug de FWH?
Se podrá solucionar? O bien debo poner el INI en el directorio del usuario?
Saludos, Esteban.
Re: Raro comportamiento en inicio de Windows
Posted: Thu Oct 28, 2010 2:47 pm
by Patricio Avalos Aguirre
hola
Yo lo uso de esta manera
Code: Select all
DiskName() + ":\"+Curdir() // unidad y ruta del asistema
Re: Raro comportamiento en inicio de Windows
Posted: Thu Oct 28, 2010 2:48 pm
by Patricio Avalos Aguirre
Patricio Avalos Aguirre wrote:hola
Yo lo uso de esta manera
Code: Select all
DiskName() + ":\"+Curdir() // unidad y ruta del sistema
Re: Raro comportamiento en inicio de Windows
Posted: Thu Oct 28, 2010 6:51 pm
by jrestojeda
Patricio...
De la forma que tu me dices, todo sigue igual.
Con la clave de registro el path es: "C:\Document and Settings\Esteban\Sistema.ini"
La ejecución manual es: "C:\PRUEBA\SISTEMA.INI"
De todas formas muchas gracias.
Saludos, Esteban.
Re: Raro comportamiento en inicio de Windows
Posted: Fri Oct 29, 2010 11:45 am
by jrestojeda
Re: Raro comportamiento en inicio de Windows
Posted: Fri Oct 29, 2010 7:52 pm
by RenOmaS
Una question?
Como "defines" para que tu programa se inicie con el windows??