Hola sonjeux.
Lamento no tener otra versión, pero te adjunto un código que funciona correctamente con
Delphi 7 en
Windows 64bits, estimo que debería hacerlo del mismo modo en Delphi
XE2. Para probarlo, crea una carpeta temporal y descomprimilo allí. (El demo incluye un archivo .txt en la misma carpeta)
Algo importante a tomar en cuenta es que en Windows 64bits la carpeta
Windows\System32 es redirigida a
Windows\SysWOW64, así que el código:
Código Delphi
[-]
procedure TForm1.btnSystem32Click(Sender: TObject);
begin
if FileExists('C:\Windows\System32\telnet.exe') then
ShowMessage('Existe')
else
ShowMessage('No existe')
end;
nos va a porfiar con un rotundo
"No existe" aunque tengamos seleccionado el archivo desde el explorador de windows y precisamente en esa carpeta ...
La solución mas simple es reemplazar "System32" por el alias "Sysnative" que le indica al sistema de archivos que no debe redirigir el acceso:
Código Delphi
[-]
procedure TForm1.btnSysnativeClick(Sender: TObject);
begin
if FileExists('C:\Windows\Sysnative\telnet.exe') then
ShowMessage('Existe')
else
ShowMessage('No existe')
end;
Saludos