|
本帖最后由 mdyblog 于 2022-8-1 08:34 编辑
Win7任务栏进度条(28K版) 示例\TaskbarPbr-tst.WCS
_SUB TaskBarPer // %__WinID% 进度数 总数
ENVI^ ForceLocal=1
SET$ mpTaskBarlist3=*8 0
SET &CLSCTX_INPROC_SERVER=0x1
SET#$ &CLSID_TaskbarList=44 f3 fd 56 6d fd d0 11 95 8a 00 60 97 c9 a0 90 //CLSID_TaskbarList={56fdf344-fd6d-11d0-958a-006097c9a090}
SET#$ &IID_ITaskbarList3=91 FB 1A EA 28 9E 86 4B 90 E9 9E 9F 8A 5E EF AF //IID_ITaskbarList3={EA1AFB91-9E28-4B86-90E9-9E9F8A5EEFAF}
lock .ole
CALL $--ret:* --qd --16 OLE32.DLL,CoCreateInstance,&&hr,*CLSID_TaskbarList,#0,#%CLSCTX_INPROC_SERVER%,*IID_ITaskbarList3,*mpTaskBarlist3
SET?ptr mpTaskBarlist3=&&vpTaskBarlist3 //BIN==>字符串形式vpTaskBarlist3
IFEX #[ 0<>%&hr% | 0=%vpTaskBarlist3% ], EXIT
SET?ptr %vpTaskBarlist3%=&&Vtbl3
^SET?ptr %Vtbl3%=&&Release:(%ptrlen%*2)
^SET?ptr %Vtbl3%=&&HrInit:(%ptrlen%*3)
^SET?ptr %Vtbl3%=&&SetProgressValue:(%ptrlen%*9)
^SET?ptr %Vtbl3%=&&SetProgressState:(%ptrlen%*10)
CALL $--ret:&&rs --qd# #,%HrInit%,%vpTaskBarlist3%
IFEX #[ 0<=%~2 & %~2<=0xF & ''='%~3' ], ^CALL $--ret:&&rs --qd# #,%SetProgressState%,%vpTaskBarlist3%,%~1,%~2
IFEX #[ 0<=%~2 & 0<%~3 ],!! ^CALL $--ret:&&ri --qd:##<< #,%SetProgressValue%,%vpTaskBarlist3%,%~1,%~2,%~3
CALL $--ret:&&ri --qd# #,%Release%,%vpTaskBarlist3% //释放COM
_END
----------------
TaskBarPer WinID 进度数 总数
TaskBarPer WinID 0 //取消
TaskBarPer WinID 1 //滚动
TaskBarPer WinID 2 //正常颜色
TaskBarPer WinID 4 //红色
TaskBarPer WinID 8 //暂停
测试
WIN1
_SUB WIN1,W730H254,任务栏进度条演示,
TIME -t:1 T1,0,TEAM TaskBarPer %__WinID% 40 100| WAIT 1000| TaskBarPer %__WinID% 80 100| WAIT 1000| TaskBarPer %__WinID% 100 100| WAIT 2000| TaskBarPer %__WinID% 0
_END
|
|