GetDrive(0,s) stimmt nur zum teil.
GetDrive(0,s) ermittelt das gegenwärtig Aktuelle laufwerk.
Dies muss aber nicht unbeding das Laufwerk (path) sein von dem das Program gestratet wurde.
Den program und start path bekommst du mit "paramstr(0) "
Paramstr ist eine Constante vom Typ string
Kann also nicht direkt benutzt werden.
am besten :
VAR S: String
S:=paramstr(0);
GetDrive(0,s) würde versagen wenn du z.b. folgendermasen das programm startest :
Auf platte c: steht das ausführbare programm
TEST.EXE
du startest es von Laufwerk d: aus da das program TEST.EXE auf c: z.b. in der PATH anweisung von der CONFIG.SYS steht (z.b. C:OS2)
wenn du das programm nun startest :
[D:]Test.exe
würde nach aufruf von getdrive(0,s) der wert "D:" zurückgeliefrt.
mit paramstr(0) bekommst du den wert "C:OS2TEST.EXE" zurück.
Du musst dan noch mittels "fsplit" den PATH und Dateinamen herausfiltern.
oder um das laufwerk zu erhalten einfach auf den 1.wert des Strings zugreifen ( S[1] )
[ Leser: 41 ] |