注意:本工具可能导致某些杀毒软件报毒,请自行斟酌是否使用。
CWnd是一个对窗口进行操作的第三方程序,在DEF的强力要求下抛弃了VS2008而改用VC6编写.
1.3BETA更新
增加了测试的X/Xwin操作,暂时没有写帮助..具体请各位在批处理中试一下这两个代码就可以了(VISTA用户如果用了感觉不好别骂我,根据WIN2003的DOS写的参数,试了以后可以自己改参数),不过还处于测试阶段... | >nul CWnd F ! | | set hWnd=%errorlevel% | | if "%hWnd%"=="0" echo Error!&pause&exit | | >nul CWnd X hWnd Rect 5 29 23 5 | | if Errorlevel 0 echo Error! | | pause&exitCOPY |
| >nul CWnd F ! | | set hWnd=%errorlevel% | | if "%hWnd%"=="0" echo Error!&pause&exit | | >nul CWnd X hWnd Elliptic 5 29 23 5 | | if Errorlevel 0 echo Error! | | pause&exitCOPY |
1.2更新
总共包括16个操作:2个获取句柄操作+11个窗口操作+1个获取进程操作+2个进程操作.
增加最小化到托盘操作[暂时没有TIP,适用性也很差,主要是因为对于一些没有图标或者不使用默认窗口(比如大部分比较"漂亮"的聊天工具和浏览器等)的软件可能会不显示图标,我会加油改的...] | Rtray/R操作 | | 将指定窗口最小化到任务栏 | | 例子: | | >nul CWnd Find ! | | set hWnd=%errorlevel% | | if "%hWnd%"=="0" echo Error!&pause>nul&exit | | >nul CWnd Rtray hWnd | | >nul pauseCOPY |
获取句柄操作: | Find/F操作 | | 查找标题或类名含有相同特征(大小写不敏感,暂时仅支持第一个*通配符或头尾*通配符)的所有窗口并隔行输出,返回值为第一个查找到的窗口句柄. | | Open/O操作 | | 运行指定程序(支持参数),并返回该程序的窗口句柄.注意:请确认指定程序运行后存在窗口,否则可能会造成暂时的假死.COPY |
窗口操作: | Close/C操作 | | 关闭指定窗口(发送WM_QUIT消息,非强制关闭,对一些窗口无效) | | Hide/H操作 | | 隐藏指定窗口(后台运行) | | Show/S操作 | | 显示指定窗口(前台运行) | | Title/T操作 | | 修改指定窗口标题 | | Get/G操作 | | 获取指定窗口标题和类名(隔行输出) | | Disable/D操作 | | 禁止指定窗口的指定功能(暂时支持禁止最小化,最大化,关闭按钮和直接移除标题栏) | | Enable/E操作 | | 开启指定窗口的指定功能(上一步的逆操作) | | Move/M操作 | | 移动指定窗口到指定位置并设置大小 | | Alpha/A操作 | | 改变指定窗口的透明度(有些程序不支持,CMD.EXE就是其中之一) | | Warning/W操作 | | 闪烁窗口发出警告COPY |
获取进程操作: | Process/P操作 | | 获取指定窗口的进程ID和可执行文件名COPY |
进程操作: | Image/I操作 | | 获取指定进程的映像路径(包括命令行) | | Kill/K操作 | | 强行中止指定进程COPY |
示例:
任务栏透明化: | @echo off | | >nul CWnd Find ClassName Shell_TrayWnd | | set hWnd=%errorlevel% | | IF "%hWnd%"=="0" echo Not Found!&pause>nul&exit | | CWnd Alpha hWnd 50 | | IF "ERRORLEVEL"=="0" echo Error!&pause>nulCOPY |
隐藏批处理窗口: | @echo off | | >nul CWnd Find ! | | set hWnd=%errorlevel% | | IF "%hWnd%"=="0" echo Error!&pause>nul&exit | | CWnd Hide hWnd | | IF "ERRORLEVEL"=="0" echo Error!&pause>nulCOPY |
禁用批处理的关闭按钮: | @echo off | | >nul CWnd Find ! | | set hWnd=%errorlevel% | | IF "%hWnd%"=="0" echo Error!&pause>nul&exit | | CWnd Disable hWnd Close | | IF "ERRORLEVEL"=="0" echo Error!&pause>nulCOPY |
获取QQ的运行参数: | @echo off | | >nul CWnd Find WindowName QQ* | | set hWnd=%errorlevel% | | IF "%hWnd%"=="0" echo Not Found!&pause>nul&exit | | >nul CWnd Process hWnd | | set hProc=%errorlevel% | | IF "%hProc%"=="0" echo Error!&pause>nul&exit | | CWnd Image %hProc% | | IF "ERRORLEVEL"=="0" echo Error! | | pause>nulCOPY |
在小强的提示下多加一句话:CMD属于特殊窗口,使用DISABLE参数时只能禁用CLOSE,而无法禁用MIN,MAX,也无法去除标题栏!
http://bcn.bathome.net/s/tool/index.html?key=CWnd |