Post by James Grubbs (Jimmy) on Apr 2, 2019 16:13:08 GMT -5
Just playing around. Thought I would share.
Have a fabulous day!
'Simple File Peruse Tool
'Created By James Grubbs
dim drv$(0), subd$(0), fls$(0), info$(0, 0)
gosub [startupProcess]
nomainwin
WindowWidth = 353
WindowHeight = 330
UpperLeftX=int((DisplayWidth-WindowWidth)/2)
UpperLeftY=int((DisplayHeight-WindowHeight)/2)
ListboxColor$ = "white"
textbox #qs.pathbox, 5, 5, 335, 25
listbox #qs.drives, drv$(, [drives], 5, 67, 50, 70
listbox #qs.subdirs, subd$(, [subdirs], 65, 37, 275, 100
stylebits #qs.files, _LBS_MULTICOLUMN or _WS_HSCROLL, 0, 0, 0
listbox #qs.files, fls$(, [files], 5, 142, 335, 100
button #qs.back,"<--",[back], UL, 5, 37, 50, 25
button #qs.folder,userbutton$,[ssfolder], UL, 25, 252, 140, 37
Stylebits #qs.folder, _BS_MULTILINE, 0, 0, 0
button #qs.cancel,"Cancel",[cancel], UL, 180, 252, 140, 37
stylebits #qs, 0, _WS_MAXIMIZEBOX, 0, 0
open "Simple File Peruse Tool" for graphics_nsb_nf as #qs
print #qs.pathbox, selectedme$
print #qs.drives, "singleclickselect"
print #qs, "down;fill buttonface; flush"
print #qs, "color black; backcolor buttonface"
print #qs, "font ms_sans_serif 10"
print #qs.folder, "!font ms_sans_serif 10"
print #qs.cancel, "!font ms_sans_serif 10"
print #qs, "trapclose [cancel]"
print #qs.drives, "selectindex 1"
wait
[drives]
print #qs.drives, "selection? selecteddrv$"
selectedme$=selecteddrv$
gosub [SubDirectories]
print #qs.subdirs, "reload"
print #qs.files, "reload"
print #qs.pathbox, selectedme$
wait
[subdirs]
print #qs.subdirs, "selection? selecteddir$"
selectedme$=selectedme$+selecteddir$+"\"
gosub [SubDirectories]
print #qs.subdirs, "reload"
print #qs.files, "reload"
print #qs.pathbox, selectedme$
wait
[files]
print #qs.files, "selection? selectedfile$"
runme$=selectedme$+selectedfile$
notice runme$ '<-------------------------------------selected file
wait
[ssfolder]
selectedme$=userfilesPath$
gosub [SubDirectories]
print #qs.subdirs, "reload"
print #qs.files, "reload"
print #qs.pathbox, selectedme$
wait
[back]
if selectedme$=selecteddrv$ then wait
backlen=len(selectedme$)
selectedme$=left$(selectedme$, backlen-1)
afterback$=afterlast$(selectedme$, "\")
afterlen=len(afterback$)
back$=left$(selectedme$, backlen-afterlen-1)
selectedme$=back$
gosub [SubDirectories]
print #qs.subdirs, "reload"
print #qs.files, "reload"
print #qs.pathbox, selectedme$
wait
[SubDirectories]
'shows subdirectories in a path
redim info$(0, 0)
files selectedme$, "", info$()
QtySubDirectories=val(info$(0, 1))
redim subd$(QtySubDirectories)
for b=1 to QtySubDirectories
subd$(b)=info$(b, 1)
next b
[showfiles]
'shows files in a path
redim info$(0, 0)
files selectedme$, "*.*", info$()
QtyFiles=val(info$(0, 0))
redim fls$(QtyFiles)
for b=1 to QtyFiles
fls$(b)=info$(b, 0)
next b
return
[startupProcess]
while word$(Drives$, countdrv+1)<>""
countdrv=countdrv+1
wend
redim drv$(countdrv)
for scountdrv=1 to countdrv
drv$(scountdrv) = word$(Drives$, scountdrv)+"\"
next scountdrv
selectedme$=drv$(1)
selecteddrv$=selectedme$
back$=selectedme$
[getUserName]
Open "advapi32" For DLL As #ad
buf$ = Space$(100 )+ Chr$(0)
struct size, L As Long
size.L.struct = 100
CallDLL #ad,"GetUserNameA",_
buf$ As Ptr,_
size As struct,_
re As Long
Close #ad
lenReturn = size.L.struct
UserName$=left$(buf$, lenReturn)
UserName$=word$(UserName$, 1)
[createUserbuttonPath]
userbutton$=UserName$+"'s"+chr$(13)+"User Files"
userfilesPath$=selecteddrv$+"Users\"+UserName$+"\"
gosub [SubDirectories]
return
[cancel]
close #qs
end
Have a fabulous day!