' Aktueller Pfad auslesen - 2. Variante ' $INCLUDE: 'qb.bi' DIM dosIntEin AS RegTypeX, dosIntAus AS RegTypeX, puf AS STRING * 300 ' Zuerst aktuelles Laufwerk ermitteln ' Quelle: http://www.ctyme.com/intr/rb-2588.htm dosIntEin.ax = &H1900 CALL INTERRUPTX(&H21, dosIntEin, dosIntAus) lw% = (dosIntAus.ax AND 255) + 1 ' Pfad in der kurzen, MS-DOS 6.22-kompatiblen Form ermitteln ' Quelle: http://www.ctyme.com/intr/rb-2933.htm dosIntEin.ax = &H4700 dosIntEin.dx = lw% dosIntEin.ds = VARSEG(puf) dosIntEin.si = VARPTR(puf) CALL INTERRUPTX(&H21, dosIntEin, dosIntAus) IF dosIntAus.flags AND 1 THEN PRINT "Fehler beim Auslesen:"; dosIntAus.ax ELSE p% = INSTR(puf, CHR$(0)) IF p% > 0 THEN pf$ = LEFT$(puf, p% - 1) ELSE pf$ = puf END IF PRINT "Pfad kurz: "; CHR$(64 + lw%); ":\"; pf$ END IF ' Pfad in der langen Dateinamen-Form ' Quellen: http://www.ctyme.com/intr/rb-3202.htm ' http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win9x/95func_29m0.asp dosIntEin.ax = &H7147 dosIntEin.dx = lw% dosIntEin.ds = VARSEG(puf) dosIntEin.si = VARPTR(puf) CALL INTERRUPTX(&H21, dosIntEin, dosIntAus) IF dosIntAus.flags AND 1 THEN PRINT "Fehler beim Auslesen:"; dosIntAus.ax ELSE p% = INSTR(puf, CHR$(0)) IF p% > 0 THEN pf$ = LEFT$(puf, p% - 1) ELSE pf$ = puf END IF PRINT "Pfad lang: "; CHR$(64 + lw%); ":\"; pf$ END IF