Te ruego mil disculpas, tienes razón, el error fué mío ya que a pesar de que lo probé y funciona perfecto se me "coló" esa llamada a una función que es mía y es la llamada
GetWindowsDir. Lo que sucede es que tengo miles de rutinas propias en bibliotecas que utilizo para facilitar la programación y algunas de ellas tienen nombre similar a las de Windows y hace tanto que las uso que a veces me olvido que son mías solamente
Algunas me ahorran pequeños trozos de código como la citada, pero cuando tienes que programar mucho esa pequeña ayuda se agradece.
Va aquí el sencillo código de
GetWindowsDir:
Código Delphi
[-]function GetWindowsDir:String;
var r,s:String;
begin
s:=StringOfChar(#0,255);
GetWindowsDirectory(pchar(s),255);
result:=IncludeTrailingBackSlash(Trim(s));
end;
Espero que no tengas más problemas.