Guten Morgen,
mit folgendem Code lesen wir den Pfad eines
Paradox Alias aus
Delphi-Quellcode:
function getaliaspfad(aliasname:
string) :
string;
var session1:Tsession;
mysl:TStringlist;
i:integer;
begin
MySL := TStringList.Create;
Session1 := TSession.create(
NIL);
session1.sessionname:=aliasname;
try
Session1.GetAliasParams(aliasname,MySL);
except
try
session1.AddstandardAlias(aliasname,'
c:\','
PARADOX');
except
end;
end;
result:='
c:\';
for I := 0
to MySL.Count - 1
do
if pos('
PATH',MySL[I]) > 0
then begin
result:=copy(mysl[i],pos('
=',MySL[I])+1,maxint);
break;
end;
session1.free;
MySL.Free;
end;
Dies funktioniert auch zu 99,99% korrekt. Doch nun haben wir 2 PCs auf denen das nicht,oder unter bestimmten umständen nicht richtig funktioniert.
Der eine ist ein Windows 2000 Rechner auf dem 2 Programm laufen. Das erste Programm liest den Alias Korrekt aus, das zweite liefert einen leeren String zurück. bzw. die ganze Stringliste ist leer. Dieser Rechner steht bei uns in der Firma.
Ein Windows ME Rechner eines Kunden hat das Problem das die zweiten Programm immer ein c: vor dem Pfad liefern.
Normalerweise steht in dem Pfad
\\rechnername\freigabe\daten . Bei allen Programmen steht dann aber
c:\\rechnername\freigabe\daten
. Leider findet dadurch unser Programm die ganzen Einstellungsdateien nicht mehr.
Ich könnte dieses Problem zwar umgehen, aber ich möchte nicht flicken, sondern herausfinden warum dies passiert.
Sven