Cmdow-一个win32窗口管理命令行工具
最近有个需求,将同一个程序运行8个实例,并按照规则在两个窗口上分布,本以为用bat就可以实现,结果发现没那么容易,搜了很久找到了这个工具cmdow.exe,发现这个东西真不错。
符合了我们项目的需求:单文件,离线可用,免安装,非常省心。
直接bat里调用,可以实现很多功能,但是我们这次的需求用bat实现还比较难(bat的for循环里的赋值结合运算很难搞),于是就结合C#实现了。
简易入门教程
第一部分
cmdow : 显示所有进程
cmdow /t : 显示所有在任务栏上的进程
cmdow /t /p:显示所有任务栏上的进程并显示其窗口位置和大小
第二部分
CMDOW /TH | /TV | /CW | /MA | /UW | /AT | /FS | /WM
这几个都是分布窗口的命令,针对所有窗口的,具体参见官方文档
第三部分
CMDOW window {[/ACT] [/INA] [/ENA] [/DIS] [/VIS] [/HID] [/MIN] [/MAX] [/RES]} CMDOW window {[/REN newcaption] [/TOP] [/NOT] [/MOV left top] [/SIZ width height] [/CLS] [/END]}
针对具体某一个窗口的操作,只介绍一下我用到的:
首先,怎么确定是哪个窗口?
通过cmdow /t ,可以看到进程的 Handle(第一列)以及Caption(最后一列)

使用 Handle 或者 Caption 都可以指定具体的窗口,但是建议使用Handle,因为是唯一的(Caption可能存在一样的,例如上图中的“UE4_Program (64-bit, PCD3D_SM5)"就有两个实例)
例如设置上图中UE4_Program (64-bit, PCD3D_SM5)的窗口大小和位置:
cmdow 0x080A30 /siz 500 500
cmdow 0x080A30 /mov 0 0
这种方法可以具体设置到某个实例。
或者:
cmdow "UE4_Program (64-bit, PCD3D_SM5)" /siz 500 500
cmdow "UE4_Program (64-bit, PCD3D_SM5)" /mov 0 0
这种方法只能模糊查找,在两个UE4的进程中选一个进行设置,注意,因为Caption中含有空格,所以名字要用引号包含起来。
第四部分
其他命令举例:
/hid可以将进程隐藏,任务栏和系统托盘里都看不到(难怪cmdow容易被杀毒软件杀掉,这容易偷偷干坏事)
/cls将任务关闭
第五部分
此外使用cmdow还可以启动进程, 格式如下:
CMDOW /RUN [state] file [args]
其中 state 可以是这三个参数中的一个: /MAX /MIN /HID,分别是最大化,最小化以及隐藏
file就是要执行的可执行文件,如果名称中包含空格,一样要用双引号包裹。 args就是可执行文件的其他参数(程序自己定义的)
第六部分
官方的几个使用案例:
关闭所有任务栏上的进程:
@echo off
:: Hide this console window so its not shown on taskbar
cmdow @ /hid
for /f %%a in ('cmdow /t') do cmdow %%a /cls
:: Now close this console window
cmdow @ /cls
输出当前屏幕的尺寸:(level是0的进程是个特殊进程,能通过他获得当前屏幕分辨率)
@echo off
for /f "tokens=2,10-11" %%a in ('cmdow /p') do (
if "%%a"=="0" set "WIDTH=%%b" & set "HEIGHT=%%c"
)
echo Resolution is %WIDTH%x%HEIGHT%
根据官方的案例,我们也可很容易写出这样的功能:
例如,设置所有名称为RAS_General的进程的窗口大小为800*800,并把窗口位置移动到0,0 点:
@echo off
for /f "tokens=1,9" %%a in ('cmdow /t') do(
if "%%b"=="RAS_General" (
cmdow %%a /siz 800 800
cmdow %%a /mov 0 0
)
)
Cmdow-一个win32窗口管理命令行工具的更多相关文章
- Linux 下一个很棒的命令行工具
导读 Taskwarrior 是 Ubuntu/Linux 下一个简单而直接的基于命令行的 TODO 工具.这个开源软件是我曾用过的最简单的基于命令行的工具之一.Taskwarrior 可以帮助你更好 ...
- 如何用node编写命令行工具,附上一个ginit示例,并推荐好用的命令行工具
原文 手把手教你写一个 Node.js CLI 强大的 Node.js 除了能写传统的 Web 应用,其实还有更广泛的用途.微服务.REST API.各种工具……甚至还能开发物联网和桌面应用.Java ...
- 如何创建一个基于命令行工具的跨平台的 NuGet 工具包
命令行可是跨进程通信的一种非常方便的手段呢,只需启动一个进程传入一些参数即可完成一些很复杂的任务.NuGet 为我们提供了一种自动导入 .props 和 .targets 的方法,同时还是一个 .NE ...
- 【amad】cookiecutter -- 一个命令行工具,使用项目模版来构建项目
动机 简介 个人评分 动机 一般的框架都有脚手架工具,但是并不会让所有人满意. 简介 cookiecutter1是一个Python实现的命令行工具,可以通过项目模版来构建项目. 它的特性包括: 跨平台 ...
- OpenStack命令行工具与API
Openstack命令行工具 我们推荐Openstack命令行工具和Openstack的Dashboard两者结合使用.一些用户由于使用过其他云技术背景的,可能会使用EC2兼容的API,相对于我们需要 ...
- **代码审查:Phabricator命令行工具Arcanist的基本用法
Phabricator入门手册 http://www.oschina.net/question/191440_125562 Pharicator是FB的代码审查工具,现在我所在的团队也使用它来进行代码 ...
- commanderJs编写命令行工具(cli)
前言: 最近需要做一个内部的node cli来独立构建流程,对整个命令行工具实现流程有了大致了解,下面来解释一下如何实现一个cli,和如何使用 commander 库. 新手误区: 在开始实现之前 ...
- Tools - Windows系统下的命令行工具Cmder
cmder简介 官网:http://cmder.net/ GitHub:https://github.com/cmderdev/cmder Cmder是一个windows下的命令行工具,用来替代win ...
- face_recognition环境配置及命令行工具测试
由于某种不可抗力(又是它!)我写了这篇博客,主要目的是记录. face_recognition是啥子? face_recognition号称世界上最简单的人脸识别库,可使用 Python 和命令行进行 ...
随机推荐
- python+selenium操作cookie
WebDriver提供了操作Cookie的相关方法,可以读取.添加和删除cookie信息. WebDriver操作cookie的方法: get_cookies(): 获得所有cookie信息. get ...
- 记:第一次更新服务器CUDA和GPU驱动
因有需求需要改动centos7中的CUDA(更新到10)和GUP 的driver(更新到410)的版本. 事先需要查看原版本的信息,使用nvidia-smi可以查看driver的版本信息(最新的也显示 ...
- 【转】sql server数据收集和监控
转自:https://www.cnblogs.com/zhijianliutang/p/4476403.html 相关系列: https://www.cnblogs.com/zhijianliutan ...
- JS实现每隔一段时间数量增加或减少
<div class="minge"> <p>仅剩 <span>126</span>个名额</p> </div&g ...
- tomcat下的日志配置详细说明
#可配置项(5类日志):catalina.localhost.manager.admin.host-manager handlers = 1catalina.org.apache.juli.FileH ...
- 56. Merge Intervals (JAVA)
Given a collection of intervals, merge all overlapping intervals. Example 1: Input: [[1,3],[2,6],[8, ...
- loadkeys - 调入键盘翻译表
总览 (SYNOPSIS) loadkeys [ -d --default ] [ -h --help ] [ -q --quiet ] [ -v --verbose [ -v --verbose ] ...
- odoo ERP 系统安装与使用
https://hub.docker.com/_/odoo/ #!/bin/bash sudo docker pull postgres:10sudo docker pull odoo:11.0 su ...
- PAT Advanced 1035 Password (20 分)
To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem ...
- 微信小程序中两种回到顶部按钮的效果实现
一,使用view形式的回到顶部HTML: <image src='../../img/button-top.png' class='goTop' hidden='{{!floorstatus}} ...