現時点の状況
#module
;▼必要となるAPIや定数の定義
#uselib "kernel32.dll"
#cfunc FindFirstFile "FindFirstFileA" var,var
#func FindClose "FindClose" int
#func FileTimeToLocalFileTime "FileTimeToLocalFileTime" var,var
#func FileTimeToSystemTime "FileTimeToSystemTime" var,var
#deffunc getstamp array prm1,str prm2,int prm3
mref ref,65
sdim dir,260 : dim fd,80 : dim st,8
dir = prm2 : if dir=="" : dir=exedir
nMode = prm3 : if (nMode<=0)|(nMode>2) : nMode=0
hFind=FindFirstFile(dir,fd) : if hFind=-1 : return -1
ref=dir ; refstrにdir(filename)を返す
exist dir : fsize=strsize
FindClose hFind
if nMode==0 : ft=fd(1),fd(2) ;作成日時
if nMode==1 : ft=fd(3),fd(4) ;アクセス日時
if nMode==2 : ft=fd(5),fd(6) ;更新日時
;ファイル時間をローカルファイル時間に変換
FileTimeToLocalFileTime ft,ft
;ファイル時間をシステム時間に変換
FileTimeToSystemTime ft,st
;SystemTime構造体 stより各要素を分解抽出する
n=0
repeat 6
if cnt==2 : n+2
s(cnt)=wpeek(st,n) : n+2
prm1(cnt)=s(cnt)
loop
;文字列として編集した形式で取得値prm1にを返す
ret =str(s(0))+"/"+strf("%02d",s(1))+"/"+strf("%02d",s(2))+" "
ret+=strf("%02d",s(3))+":"+strf("%02d",s(4))+":"+strf("%02d",s(5))
ref = ret ;編集文字列は、refstrに返す
sdim dir,0 : dim fd,0 : dim st,0
return fsize
#uselib "shell32.dll"
#func global SHGetFileInfo "SHGetFileInfo" sptr,sptr,sptr,sptr,sptr
#define SHGFI_ICON $00000100
#define SHGFI_TYPENAME $00000400
#defcfunc getfiletype str path
dim SHFILEINFO, 88
sdim filetype, 80
SHGetFileInfo path, 0, varptr(SHFILEINFO), $160, SHGFI_ICON | SHGFI_TYPENAME
getstr filetype, SHFILEINFO, $110
return filetype
#global
title "hsp製簡易ファイラー(実力不足で表示するだけ)"
chdir dirinfo(2)
dirlist folist,"*.*",5
dirlist filist,"*.*",3
winobj "SysListView32", "", 0x00000200, 0x50000001, 640, 480
hList = objinfo(stat, 2)
sendmsg hList, $1036, , $20
szText = "名前"
LVCOLUMN = 0x000F, 0, 160, varptr(szText), 0, 0
sendmsg hList, 0x101B, 0, varptr(LVCOLUMN)
szText = "更新日時"
LVCOLUMN = 0x000F, 0, 160, varptr(szText), 0, 1
sendmsg hList, 0x101B, 1, varptr(LVCOLUMN)
szText = "種類"
LVCOLUMN = 0x000F, 0, 160, varptr(szText), 0, 1
sendmsg hList, 0x101B, 2, varptr(LVCOLUMN)
szText = "サイズ"
LVCOLUMN = 0x000F, 0, 160, varptr(szText), 0, 1
sendmsg hList, 0x101B, 3, varptr(LVCOLUMN)
split filist,"\n",list2
repeat length(list2)-1
pszText = list2(cnt)
LVITEM = 0x0001, cnt, 0, 0, 0, varptr(pszText)
sendmsg hList, 0x1007, 0, varptr(LVITEM)
getstamp n,list2(cnt),0
pszText = refstr
LVITEM = 0x0001, cnt, 1, 0, 0, varptr(pszText)
sendmsg hList, 0x1006, 0, varptr(LVITEM)
pszText = getfiletype(list2(cnt))
LVITEM = 0x0001, cnt, 2, 0, 0, varptr(pszText)
sendmsg hList, 0x1006, 0, varptr(LVITEM)
await 1
loop
split folist,"\n",list2
repeat length(list2)-44
pszText = list2(cnt)
LVITEM = 0x0001, cnt, 0, 0, 0, varptr(pszText)
sendmsg hList, 0x1007, 0, varptr(LVITEM)
getstamp n,list2(cnt),0
pszText = refstr
LVITEM = 0x0001, cnt, 1, 0, 0, varptr(pszText)
sendmsg hList, 0x1006, 0, varptr(LVITEM)
pszText = getfiletype(list2(cnt))
LVITEM = 0x0001, cnt, 2, 0, 0, varptr(pszText)
sendmsg hList, 0x1006, 0, varptr(LVITEM)
await 0.000001
loop
IEコンポーネントでエクスプローラーっぽくしてみた