'**************************************************************************** ' ' Pfad und Dateiname des aktuellen Programm ermitteln in PowerBASIC 3.5 ' ' entwickelt von / developed by : Thomas Gohel ' ' Fido : Thomas Gohel@2:2410/330.1 ' InterNet: support@gohel.de ' Homepage: http://www.pbhq.de ' '**************************************************************************** $COMPILE EXE $DIM ALL DIM AppPath AS SHARED STRING DIM AppExe AS SHARED STRING DECLARE SUB Get_AppPath() Get_AppPath PRINT "Application Path: "; AppPath PRINT "Application Name: "; AppExe '------------------------------------------------------------------------------------------- ' Find directory of application '------------------------------------------------------------------------------------------- SUB Get_AppPath() DIM i AS LOCAL INTEGER DIM EnvSize AS LOCAL INTEGER DIM Env AS LONG PTR DIM Cmd AS ASCIIZ PTR ! mov ax, &h5100 ; Get segment address of current PSP ! int &h21 ! mov es, bx ! mov ax, word ptr es:[&h2C] ; Get segment address of environment ! mov Env[02], ax ! xor bx, bx ! mov Env[00], bx ! dec ax ! mov es, ax ! mov bx, word ptr es:[&H03] ! mov cl, &h04 ! shl bx, cl ! mov EnvSize, bx FOR i% = 0 TO EnvSize ' nach "00-00-01-00" suchen IF @Env = &h00010000 THEN Cmd = Env + 4 FOR i% = LEN(@Cmd) TO 1 STEP -1 IF RIGHT$(MID$(@Cmd, 1, i%), 1) = "\" THEN EXIT FOR END IF NEXT i% AppPath$ = LEFT$(@Cmd, i%) AppExe$ = MID$(@Cmd, i% + 1) EXIT FOR END IF INCR Env NEXT i% END SUB