Code:
' List open files on Windows 95/98 #COMPILE EXE #INCLUDE "WIN32API.INC" FUNCTION PBMAIN() DIM regs AS DIOC_REGISTERS DIM hVWin32 AS LONG DIM buf AS ASCIIZ * %MAX_PATH DIM cb AS LONG DIM i AS LONG DIM a AS STRING hVWin32 = CreateFile("\\.\vwin32", 0, 0, BYVAL %NULL, 0, %FILE_FLAG_DELETE_ON_CLOSE, %NULL) i = 0 DO LSET regs = STRING$(SIZEOF(regs), 0) regs.regEBX = 3 ' Drive ID (A-1,B-2,C-3,...) regs.regEDX = VARPTR(buf) ' File NAME regs.regECX = &H0486D ' GET opened file regs.regEAX = &H0440D ' IOCTL FOR block devices regs.regESI = i ' Zero-based file ID CALL DeviceIoControl(hVWin32, %VWIN32_DIOC_DOS_IOCTL, regs, SIZEOF(regs), regs, SIZEOF(regs), cb, BYVAL %NULL) IF (regs.regFlags AND &H01) THEN EXIT LOOP a = a & TRIM$(buf) & $CRLF INCR i LOOP IF i THEN OPEN "OPENFILE.DAT" FOR OUTPUT AS #1 PRINT #1, a CLOSE #1 MessageBox GetFocus(), "Success!" & $CRLF & FORMAT$(i) & " open files enumerated", "EnumFiles(Win9x)", %MB_ICONINFORMATION END IF END FUNCTION
PowerBASIC Support
Comment