无忧启动论坛

标题: .wcs可不显示在任务栏吗?谢谢 [打印本页]

作者: yyz2191958    时间: 2025-5-12 09:24
标题: .wcs可不显示在任务栏吗?谢谢
本帖最后由 yyz2191958 于 2025-5-12 21:03 编辑

.wcs可不显示在任务栏吗(弄到托盘也行 谢谢)?谢谢

=============================
用 “DeepSeek - 探索未至之境” 弄了一下:_SUB CK,W270H60,监控,,0x80000000,-top
====================================================
任务栏是没有了。但是,窗口也没有关闭按钮,也不能够移动了



//=============================================================================================
EXEC !CMD.EXE /C 隐藏批处理窗口.exe 监控 /MOV 755 665 //【窗口移动到:755 665】
//=============================================================================================
ENVI CPUS=1
FIND --pid TMS,
MSTR I1,T1,CPUS=<1*>%TMS%
ENVI Last=-100
FIND MEM=?,总内存
CALC 内存=%总内存%/1024#2
CALL CK

_SUB CK,W270H60,监控
        ENVI @this.Font=13:微软雅黑

        LABE -left -trans ,L6T0W200H20,CPU:,,0xFF0606 //蓝色
        LABE -left -trans CPU,L55T0W300H30,,,FF00FF //粉红色
         PBAR PBAR1,L6T18W252H8,0
        LABE -left -trans ,L120T0W200H30,内存:,,0xFF0606 //蓝色
        LABE -left -trans 内存情况,L170T0W200H30,,,FF00FF //粉红色

        CALL 检测
        TIME HMST,1000,CALL 检测
EXEC =!CMD.EXE /C 隐藏批处理窗口.exe 监控 /TOP //【窗口置顶】
_END

_SUB 检测

        FIND --pid TMS,
        MSTR I2,T2=<1*>%TMS%
        CALC #I21=%I2%-%I1%
        CALC #T21=%T2%-%T1%
        CALC P=100-100*%I21%/%T21%/%CPUS%##2
        IFEX |%P%=-0.0,ENVI P=0
        IFEX [$%P%<0 $%Last%=%P%],EXIT!TEAM ENVI Last=%P%|ENVI I1=%I2%|ENVI T1=%T2%
        ENVI @CPU=%P%%
        ENVI @PBAR1=%P%%
        IFEX MEM=?,可用内存
        CALC 已用内存=(%总内存%-%可用内存%)/1024#2
        CALC 内存百分比=100-%可用内存%/%总内存%*100#2
        ENVI @内存情况=%内存百分比%%
_END




作者: afang158    时间: 2025-5-12 09:28
不太懂 进来看看
作者: yyz2191958    时间: 2025-5-12 09:36
afang158 发表于 2025-5-12 09:28
不太懂 进来看看

谢谢

弄到托盘也行 谢谢
作者: youxia1220    时间: 2025-5-12 10:14
谢谢分享
作者: guong    时间: 2025-5-12 13:49
应该可以吧 只是不会弄
作者: yyz2191958    时间: 2025-5-12 14:01
guong 发表于 2025-5-12 13:49
应该可以吧 只是不会弄

谢谢
作者: 13433801326    时间: 2025-5-12 16:37
不太懂
作者: yyz2191958    时间: 2025-5-12 16:55
13433801326 发表于 2025-5-12 16:37
不太懂

谢谢
作者: wxinchun92    时间: 2025-5-12 19:15
ENVI @this.Visable=*4
作者: yyz2191958    时间: 2025-5-12 19:42
wxinchun92 发表于 2025-5-12 19:15
ENVI @this.Visable=*4

放在哪里?谢谢
作者: 114514csf    时间: 2025-5-12 20:09
我只会让它在最小化时不显示在任务栏
作者: yyz2191958    时间: 2025-5-12 20:59
用 “DeepSeek - 探索未至之境” 弄了一下:_SUB CK,W270H60,监控,,0x80000000,-top
====================================================
任务栏是没有了。但是,窗口也没有关闭按钮,也不能够移动了

1.png (1.53 KB, 下载次数: 45)

1.png

作者: wu_yang007    时间: 2025-5-13 01:59
本帖最后由 wu_yang007 于 2025-5-13 02:09 编辑

aHR0cHM6Ly93d3cuYXV0b2hvdGtleS5jb20vYm9hcmRzL3ZpZXd0b3BpYy5waHA/dD0xMTgxMzcNCg==

ahk可以吗等级不够发不了连接   自己decode




作者: yyz2191958    时间: 2025-5-13 06:45
wu_yang007 发表于 2025-5-13 01:59
aHR0cHM6Ly93d3cuYXV0b2hvdGtleS5jb20vYm9hcmRzL3ZpZXd0b3BpYy5waHA/dD0xMTgxMzcNCg==

ahk可以吗等级不 ...

谢谢
作者: yyz2191958    时间: 2025-5-13 06:48
wu_yang007 发表于 2025-5-13 01:59
aHR0cHM6Ly93d3cuYXV0b2hvdGtleS5jb20vYm9hcmRzL3ZpZXd0b3BpYy5waHA/dD0xMTgxMzcNCg==

ahk可以吗等级不 ...

麻烦将ahk代码贴出来,谢谢
作者: wu_yang007    时间: 2025-5-13 12:40
yyz2191958 发表于 2025-5-13 06:48
麻烦将ahk代码贴出来,谢谢

toggle := 1

;  Methods in ITaskbarList's VTable:
;    IUnknown:
;      0 QueryInterface  -- use ComObjQuery() instead
;      1 AddRef          -- use ObjAddRef() instead
;      2 Release         -- use ObjRelease() instead
;    ITaskbarList:
;      3 HrInit
;      4 AddTab
;      5 DeleteTab
;      6 ActivateTab
;      7 SetActiveAlt

F1:: {
global
IID_ITaskbarList  := "{56FDF342-FD6D-11d0-958A-006097C9A090}"
CLSID_TaskbarList := "{56FDF344-FD6D-11d0-958A-006097C9A090}"

; Create the TaskbarList object and store its address in tbl.
tbl := ComObject(CLSID_TaskbarList, IID_ITaskbarList)

toggle := !toggle

if (!toggle) {
activeHwnd := WinExist("A")
        DllCall(vtable(tbl,3), "ptr", tbl)                     ; tbl.HrInit()
        DllCall(vtable(tbl,5), "ptr", tbl, "ptr", activeHwnd)  ; tbl.DeleteTab(activeHwnd)
} else {
        DllCall(vtable(tbl,4), "ptr", tbl, "ptr", activeHwnd)  ; tbl.AddTab(activeHwnd)
}

; Non-dispatch objects must always be manually freed.
ObjRelease(tbl)
}

vtable(ptr, n) {
global
    ; NumGet(ptr+0) returns the address of the object's virtual function
    ; table (vtable for short). The remainder of the expression retrieves
    ; the address of the nth function's address from the vtable.
    return NumGet(NumGet(ptr+0, "UPtr"), n*A_PtrSize, "UPtr")
}

return


上面 v2   的   没似过   我用的  v1 的   需要手动  也可自己修改  如果不会改问 AI  

;使用 COM 从任务栏暂时地移除活动窗口.
/*
  ITaskbarList ¬ 的 VTable 中的方法:
    IUnknown:
      0 QueryInterface  -- 使用 ComObjQuery() 代替
      1 AddRef          -- 使用 ObjAddRef() 代替
      2 Release         -- 使用 ObjRelease() 代替
    ITaskbarList:
      3 HrInit
      4 AddTab
      5 DeleteTab
      6 ActivateTab
      7 SetActiveAlt
*/


F1::
IID_ITaskbarList  := "{56FDF342-FD6D-11d0-958A-006097C9A090}"
CLSID_TaskbarList := "{56FDF344-FD6D-11d0-958A-006097C9A090}"

; 创建 TaskbarList 对象并把它的地址保存到 tbl.
tbl := ComObjCreate(CLSID_TaskbarList, IID_ITaskbarList)

activeHwnd := WinExist("A")

DllCall(vtable(tbl,3), "ptr", tbl)                     ; tbl.HrInit ¬()
DllCall(vtable(tbl,5), "ptr", tbl, "ptr", activeHwnd)  ; tbl.DeleteTab ¬(activeHwnd)
Sleep 3000
DllCall(vtable(tbl,4), "ptr", tbl, "ptr", activeHwnd)  ; tbl.AddTab ¬(activeHwnd)

; 非 dispatch 对象总是需要手动释放.
ObjRelease(tbl)

vtable(ptr, n) {
    ; NumGet(ptr+0) 返回对象的虚函数表
    ; (简称为 vtable) 的地址. 表达式的其余部分从
    ; vtable 中获取第 n 个函数的地址.
    return NumGet(NumGet(ptr+0), n*A_PtrSize)
}
return

使用方法   鼠标点击选中  然后按快捷键  恢复  也是 这个快捷键   
作者: yyz2191958    时间: 2025-5-13 12:41
wu_yang007 发表于 2025-5-13 12:40
toggle := 1

;  Methods in ITaskbarList's VTable:

谢谢
作者: yyz2191958    时间: 2025-5-13 12:45
wu_yang007 发表于 2025-5-13 12:40
toggle := 1

;  Methods in ITaskbarList's VTable:

我这里不行

1.png (2.69 KB, 下载次数: 29)

1.png

作者: wu_yang007    时间: 2025-5-13 13:43
yyz2191958 发表于 2025-5-13 12:45
我这里不行

如果不行就用 v1可以吗  要不ai 转一下    之前我没怎么使用没注意  V1版本  有点问题    运行后三秒恢复显示了
刚才改了改V1的
你似下我运行没问题可以切换了
;使用 COM 从任务栏暂时地移除活动窗口.
/*
  ITaskbarList ¬ 的 VTable 中的方法:
    IUnknown:
      0 QueryInterface  -- 使用 ComObjQuery() 代替
      1 AddRef          -- 使用 ObjAddRef() 代替
      2 Release         -- 使用 ObjRelease() 代替
    ITaskbarList:
      3 HrInit
      4 AddTab
      5 DeleteTab
      6 ActivateTab
      7 SetActiveAlt
*/


^F2::
toogle1 := !toogle1
If(toogle1)
{
IID_ITaskbarList  := "{56FDF342-FD6D-11d0-958A-006097C9A090}"
CLSID_TaskbarList := "{56FDF344-FD6D-11d0-958A-006097C9A090}"

; 创建 TaskbarList 对象并把它的地址保存到 tbl.
tbl := ComObjCreate(CLSID_TaskbarList, IID_ITaskbarList)

activeHwnd := WinExist("A")

DllCall(vtable(tbl,3), "ptr", tbl)                     ; tbl.HrInit()
DllCall(vtable(tbl,5), "ptr", tbl, "ptr", activeHwnd)  ; tbl.DeleteTab(activeHwnd)
}
else
{
IID_ITaskbarList  := "{56FDF342-FD6D-11d0-958A-006097C9A090}"
CLSID_TaskbarList := "{56FDF344-FD6D-11d0-958A-006097C9A090}"

; 创建 TaskbarList 对象并把它的地址保存到 tbl.
tbl := ComObjCreate(CLSID_TaskbarList, IID_ITaskbarList)
DllCall(vtable(tbl,4), "ptr", tbl, "ptr", activeHwnd)  ; tbl.AddTab(activeHwnd)
}
return


; 非 dispatch 对象总是需要手动释放.
ObjRelease(tbl)

vtable(ptr, n) {
    ; NumGet(ptr+0) 返回对象的虚函数表
    ; (简称为 vtable) 的地址. 表达式的其余部分从
    ; vtable 中获取第 n 个函数的地址.
    return NumGet(NumGet(ptr+0), n*A_PtrSize)
}
return
作者: yyz2191958    时间: 2025-5-13 17:32
wu_yang007 发表于 2025-5-13 13:43
如果不行就用 v1可以吗  要不ai 转一下    之前我没怎么使用没注意  V1版本  有点问题    运行后三秒恢复 ...

谢谢
作者: 12956    时间: 2025-5-14 18:18
学习了




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3