[C++] Ayuda función Access

Hola!

En un autoejecutable de un CD que estoy haciendo estoy intentando detectar la existencia de Internet Explorer en el sistema, y para ello he utilizado la función access la siguiente manera:

if (access ("C:/Archivos de programa/internet explorer/iexplore.exe",X_OK) == 0){


De este modo funciona, pero si la letra del disco duro donde está instalado windows (y por tanto Archivos de programa) es diferente esto no funcionaría, por lo que he probado con:

if (access ("%PROGRAMFILES%/internet explorer/iexplore.exe",X_OK) == 0){


pero access no me acepta %PROGRAMFILES%.

¿Alguna idea sobre cómo podría hacerlo de forma fácil?

Gracias de antebrazo :)
Es solo una idea de un inexperto.

Buscando en el registro la siguiente clave:

hkey_local_machine/software/microsoft/windows/currentversion/app paths/iexplore.exe

Alli te viene la ruta que buscas sea donde sea que este instalado.

incluso en:

hkey_local_machine/software/microsoft/internet explorer/.......

Puedes encontrar la versión que esta instalada.

Las rutas las hice a mano no copy/paste pueden tener algun fallo.

SAludos y espero haberte servido de ayuda.
haz lo que te dice demongba usando WinAPI
2 respuestas