Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Problemas con Windows Vista
Ir a página 1, 2  Siguiente
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problemas con Windows Vista Responder citando

Hola a todos,

Que tal os van los programas con Vista? yo tengo algunos problemas y la unica manera de solucionarlos es poniendo que se ejecute como "Administrador" o desactivando el "Control de cuentas de Usuario" hay alguna forma de que todo vaya bien sin obligar al usuario a hacer nada?

Quizas es porque uso una version antigua del InstallShield?

La verdad es que es un coñazo, tener que decirles a los usuarios que hagan cambios y me gustaria buscar la forma que desde la misma instalacion se haga lo necesario para que no tengan que tocar nada.

Se os ocurre algo?

Un abrazo.

Carlos
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Esto es inherente en vista, no hay forma de quitarlo
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Eso hasta ocurre en WIndows NT
_________________
Read what I mean, not what I write!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Crea con un archivo de texto que puedes llamar por ejemplo vista.rc y añadele el siguiente código.

Código:
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#define RT_MANIFEST 24

CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST LOADONCALL MOVEABLE
{
  "<xml> "
  "<assembly> "
  "<trustInfo>"
  "<security>"
   "<requestedPrivileges>"
    "<requestedExecutionLevel>"
   "</requestedPrivileges>"
  "</security>"
 "</trustInfo>"
 "</assembly> "
}


añadelo a tu proyecto y compila.

En principio lo que haces es un manifest que le dice a vista que el programa se debe ejecutar en modo administrador.
Debería quitarte los problemas de ejecución en vista.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Dirección AIM
Mensaje    Asunto: Responder citando

Cita:

System Error Code 14001
Error al inicial la aplicacion; la configuracion en paralelo noes correcta.


Ejecuta en mi maquiasn con windows vista basic, compilado r con c++ builder 6
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Perdón, pero me he dado cuenta de que se me había comido la mitad del código al escribirlo, supongo que al estar activado el html
Código:

#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#define RT_MANIFEST 24

CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST LOADONCALL MOVEABLE
{
  "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> "
  "<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\"> "
  "<trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\">"
  "<security>"
   "<requestedPrivileges>"
    "<requestedExecutionLevel level=\"requireAdministrator\" uiAccess=\"true\" />"
   "</requestedPrivileges>"
  "</security>"
 "</trustInfo>"
 "</assembly> "
}
Volver arriba
Ver perfil de usuario Enviar mensaje privado Dirección AIM
Mensaje    Asunto: Responder citando

No funciono, dice qeu ??? Necesita elevacion ????
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

No se si te entiendo bien, ¿te da error? o te pregunta si necesita elevar a privilegios de administrador al arrancar el programa.

Si es lo segundo, va bien, es como debe ir, hay que tener en cuenta que el UAC siempre va a preguntarnos si le damos permiso para ejecutar la aplicación en modo administrador.
La diferencia de poner el manifest es que si no está, en lugar de preguntarnos si lo ejecuta en modo administrador, lo intenta ejecutar como usuario, y claro, provoca un error donde el programa necesite mas privilegios, como por ejemplo escribir en el registro de windows.

Si vas a certificar tu aplicación con Microsoft necesitas obligatoriamente el manifest, si necesitas privilegios claro, no sirve decir que se debe ejecutar como administrador. Wink

Para saber si tu aplicación necesita privilegios tienes una aplicación de Microsoft que te la testea
http://go.microsoft.com/fwlink/?LinkId=52529

Si es un error prueba a añadir esta linea

Código:
  "<assemblyIdentity version=\"1.0.0.0\" processorArchitecture=\"X86\" name=\"nombre_aplicacion\" type=\"win32\"/>"

deberías ponerla encima del trustInfo, aunque no se si eso es importante.


De todas forma te diré que aunque estuve investigando el tema, ya que mi aplicación necesita de permisos, todavía no lo he probado, y quizás se tenga que realizar algún cambio, ya que toda la información la saqué de c# y la adapté a Borland c++, asi que ... espero que tenagas suerte.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Dirección AIM
Mensaje    Asunto: Responder citando

Touchsoftwares escribió:
No funciono, dice qeu ??? Necesita elevacion ????


Conseguiste arreglarlo?

Me da el mismo mensaje que a ti y no doy con la solucion.

Un abrazo.

Carlos
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Si a lo que te refieres es a que necesitas que tu aplicación se ejecute como administrador.. Añade a tu proyecto el archivo .RC que encontraras en el siguiente post para que el programa solicite permisos de administrador:

https://cppbuilder.es/viewtopic.php?p=40355#40355
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Leo,

Si, lo que pasa es que al añadir el .RC y al ejecutar el programa me da el mismo mensaje que le daba a Gabriel, lo de "Necesita elevación"

Tengo windows 7 y builder 6, no se si tiene algo que ver.

Y ya puestos tengo otro problemilla, creo que esto también lo hiciste tu, he puesto la función "RunOnStartup" que funciona perfectamente, pero lo que me pasa es que no encuentro la forma de decirle la "carpeta de trabajo" lo inicia perfectamente pero no en su carpeta, es como un acceso directo que no tiene carpeta de trabajo y claro no me ve los datos, hay alguna forma de indicarselo a "RunOnStartup"?

Un abrazo.

Carlos
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Te sale un dialogo preguntándote si permites la elevación ? si es así es normal, ese RC lo que provoca es que te pregunte, sin el RC simplemente no te pregunta y se ejecuta sin los privilegios de administrador.

"RunOnStartup" está en el mismo enlace que he puesto antes. Si la carpeta de datos la tienes en alguna carpeta no permitida para datos es mejor que la muevas a otro sitio. En Windows Vista y 7 la carpeta "Archivos de programa" por ejemplo, no está pensada para guardar datos, y si quisieras hacerlo tendrías que modificar los permisos (botón derecho, pestaña seguridad).

"RunOnStartup" lo que hace es imitar el funcionamiento del arranque de las versiones anteriores a Vista, que permiten arrancar en el inicio cualquier aplicación aunque necesiten privilegios de administrador. Por tanto al imitar el funcionamiento anterior que no permitía especificar una carpeta de trabajo en este lugar, si lo modificamos ya deja de tener el sentido por el que se creó..

De todas formas en el enlace tienes el código fuente y puedes modificarlo si lo necesitas. Aunque se creó para no tener que modificar los programas antiguos. Si creas un nuevo programa lo mejor es que busques en la web de Microsoft la forma recomendada de hacer esto en las nuevas versiones y que también servirá en las anteriores.

Luchar contra la forma de funcionar de los nuevos Windows solo te dará más dolores de cabeza, lo mejor es buscar en la web de Microsoft los requisitos que debe tener el programa para estas nuevas versiones..
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

_Leo escribió:
Te sale un dialogo preguntándote si permites la elevación ? si es así es normal, ese RC lo que provoca es que te pregunte, sin el RC simplemente no te pregunta y se ejecuta sin los privilegios de administrador.

"RunOnStartup" está en el mismo enlace que he puesto antes. Si la carpeta de datos la tienes en alguna carpeta no permitida para datos es mejor que la muevas a otro sitio. En Windows Vista y 7 la carpeta "Archivos de programa" por ejemplo, no está pensada para guardar datos, y si quisieras hacerlo tendrías que modificar los permisos (botón derecho, pestaña seguridad).

"RunOnStartup" lo que hace es imitar el funcionamiento del arranque de las versiones anteriores a Vista, que permiten arrancar en el inicio cualquier aplicación aunque necesiten privilegios de administrador. Por tanto al imitar el funcionamiento anterior que no permitía especificar una carpeta de trabajo en este lugar, si lo modificamos ya deja de tener el sentido por el que se creó..

De todas formas en el enlace tienes el código fuente y puedes modificarlo si lo necesitas. Aunque se creó para no tener que modificar los programas antiguos. Si creas un nuevo programa lo mejor es que busques en la web de Microsoft la forma recomendada de hacer esto en las nuevas versiones y que también servirá en las anteriores.

Luchar contra la forma de funcionar de los nuevos Windows solo te dará más dolores de cabeza, lo mejor es buscar en la web de Microsoft los requisitos que debe tener el programa para estas nuevas versiones..


Leo,

En cuanto a "RunOnStartup" no es eso exactamente a lo que me refiero, por ejemplo, yo tengo instalado el programa en:

c:\swsos\swsos.exe

Cuando se ejecuta tengo un .ini y algunas cosas más que mira en su misma carpeta y como se ejecuta desde c:\swsos no hay problema, pero cuando ejecuto el "RunOnStartup" el problema es que la carpeta de trabajo es:

c:\documents and settings\user

Y logicamente al no iniciarse en c:\swsos todos los ficheros a los que tiene que acceder no los encuentra, por eso te decia si hay alguna forma de al iniciarlo decirle cual es su carpeta de trabajo.

En este caso es un windows XP.

Si intento ejecutar "RunOnStartup" en un windows 7 me dice "Acceso denegado" con lo que no puedo poner el programa para que se ejecute al inicio.

En cuanto a lo de la "elevación" no es un cuadro de dialogo con una pregunta, lo da como un error y no me deja ejecutar el programa.

Un abrazo.

Carlos
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Carlos J. Fernandez escribió:
Y logicamente al no iniciarse en c:\swsos todos los ficheros a los que tiene que acceder no los encuentra, por eso te decia si hay alguna forma de al iniciarlo decirle cual es su carpeta de trabajo.

En este caso es un windows XP

En XP y anteriores en este lugar de arranque no se puede especificar una carpeta de trabajo, por eso pensé que lo usabas en Vista/7, ya que esta rutina imita el funcionamiento de XP y anteriores en estas versiones. En Vista/7 si se podría, pero claro esta rutina ya tendría un funcionamiento diferente. Si te fijas en el código fuente de la rutina veras que para XP ya anteriores no hace nada especial, simplemente crea una entrada en el registro en el lugar correspondiente, donde si hace algo más especial es en Vista/7 que usa el programador de tareas para imitar el funcionamiento de XP y poder poner un programa que use privilegios de administrador en el arranque.

Esa rutina debería utilizarse como solución provisional o para proyectos viejos que no queramos modificar mucho. Para nuevos proyectos lo mejor es adaptarse a los requisitos de las nuevas versiones y que también son compatibles con las anteriores. En la web de Microsoft puedes encontrar las formas en que se recomienda hacer estas cosas, no recuerdo el enlace en este momento.. pero resumiendo viene a decir que se debería separar el código que requiera privilegios de administrador del que no, y tratar de no poner en el arranque nada que requiera privilegios de administrador y si fuese necesario pues utilizar un servicio.. etc.

Puedes hacer que tu programa use como directorio por defecto el de tu ejecutable poniendo lo siguiente en el constructor del form principal:
Código:
ChDir(ExtractFilePath(Application->ExeName));

Carlos J. Fernandez escribió:
Si intento ejecutar "RunOnStartup" en un windows 7 me dice "Acceso denegado" con lo que no puedo poner el programa para que se ejecute al inicio.

¿Estas usando el RC que se nombra más arriba o el que te he puesto en el enlace? Fíjate que lo hayas añadido a tu proyecto correctamente..

Carlos J. Fernandez escribió:
En cuanto a lo de la "elevación" no es un cuadro de dialogo con una pregunta, lo da como un error y no me deja ejecutar el programa.

Cuando ejecutas tu programa con el botón derecho y seleccionando "ejecutar como administrador" te pone acceso denegado también ? El .RC lo que hace es que se ejecute igual que haciendo esto último manualmente..
Si cuando le das al botón derecho y lo ejecutas como administrador también te da el mismo error entonces el problema se puede deber a que utilizas alguna función especial que requiere habilitar otros privilegios, habría que ver cuál es.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Leo,

En cuanto a lo de la carpeta de trabajo PERFECTO eres una maquina, funciona muy bien al decirle:

ChDir(ExtractFilePath(Application->ExeName));

He probado también lo de "RunOnStartup" ejecutando en modo administrador y lo hace perfecto.

Poniendo el .RC me pasa lo siguiente, (windows 7) desde el compilador directamente se bloquea el compilador, el programa y todo, pero sin el compilador, osea ejecutándolo directamente me sale la ventanita de si quiero ejecutar el programa en modo administrador, esa ventana hay forma de quitarla?

Y por que se me bloquea todo desde el compilador? lo logico es que sacara también la ventanita de si quiero ejecutar como administrador no?

Desde windows xp al ejecutar el programa directamente va perfecto, no pregunta nada y no hace nada, imagino que es lo normal por que lo del .RC es solo para vista y 7 segun os he entendido.

Un abrazo.

Carlos
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.