aardio 文档
aardio 范例: DOS命令行窗口化工具
//命令行窗口化
//相关范例:进程 > 管道
import win.ui;
import win.ui.menu;
import process.popen;
/*DSG{{*/
var winform = win.form(text="DOS命令行窗口化工具";right=760;bottom=595;bgcolor=16777215;parent=...)
winform.add(
btnCls={cls="button";text="清屏";left=560;top=564;right=634;bottom=588;db=1;dr=1;font=LOGFONT(name='宋体');z=5};
button={cls="button";text="运行";left=481;top=564;right=555;bottom=588;db=1;dr=1;font=LOGFONT(name='宋体');z=1};
editCmd={cls="edit";text="dir c:\";left=233;top=564;right=465;bottom=588;db=1;dl=1;dr=1;edge=1;font=LOGFONT(name='宋体');z=4};
editCon={cls="edit";left=11;top=9;right=748;bottom=553;bgcolor=0;color=16777215;db=1;dl=1;dr=1;dt=1;edge=1;font=LOGFONT(name='宋体');hscroll=1;link=1;multiline=1;vscroll=1;z=2};
static={cls="static";text="命令:";left=180;top=568;right=227;bottom=584;align="center";db=1;dl=1;font=LOGFONT(h=-14;name='宋体');transparent=1;z=3}
)
/*}}*/
onMenu = function(id){
var str = winform.menu.getString(id,0x0/*_MF_BYCOMMAND*/);
str = string.replace(str,"\S+\s*$","")
winform.editCmd.text = str;
}
var menu = win.ui.menu(winform);//创建主菜单
menu.add( "DOS命令",{
{ "ver 显示版本信息";onMenu };
{ "regedit /s 注册表文件名 导入注册表";onMenu };
{ "regedit /e 注册表文件名 导出注册表";onMenu };
{ "cacls 文件名 查看文件的访问用户权限列表 ";onMenu };
{ "set 环境变量名称=要指派的值 设置环境变量 ";onMenu };
{ "set 显示当前所有的环境变量";onMenu };
{ "set p 显示出当前以字符p开头的所有环境变量";onMenu };
{ "echo 信息 在屏幕上显示出信息";onMenu };
} )
menu.add( "网络命令", {
{ "net"; {
{ "use"; {
{"use \\ip\ipc$ "" "" /user:"" "" 建立IPC空链接";onMenu };
{"use \\ip\ipc$ ""密码"" /user:""用户名"" 建立IPC非空链接";onMenu };
{"use h: \\ip\c$ ""密码"" /user:""用户名"" 直接登陆后映射对方C:到本地为H:";onMenu };
{"use h: \\ip\c$ 登陆后映射对方C:到本地为H:";onMenu };
{"use \\ip\ipc$ /del 删除IPC链接";onMenu };
{"use h: /del 删除映射对方到本地的为H:的映射";onMenu };
} }
{"账户"; {
{"password 密码 更改系统登陆密码";onMenu };
{"user guest 12345 用guest用户登陆后用将密码改为12345";onMenu };
{"user 用户名 密码 /add 建立用户";onMenu };
{"user guest /active:yes 激活guest用户";onMenu };
{"user 查看有哪些用户";onMenu };
{"user 帐户名 查看帐户的属性";onMenu };
{"localgroup administrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限";onMenu };
} }
{"共享"; {
{"share 查看本地开启的共享";onMenu };
{"share ipc$ 开启ipc$共享";onMenu };
{"share ipc$ /del 删除ipc$共享";onMenu };
{"share c$ /del 删除C:共享";onMenu };
{"view 查看本地局域网内开启了哪些共享 ";onMenu };
{"view \\ip 查看对方局域网内开启了哪些共享";onMenu };
{"logoff 断开连接的共享";onMenu };
} }
{"NT服务"; {
{"start 查看开启了哪些服务";onMenu };
{"start 服务名 开启服务";onMenu };
{"stop 服务名 停止某服务";onMenu };
{"pause 服务名 暂停某服务";onMenu };
} }
{"时间"; {
{"time \\目标ip 查看对方时间";onMenu };
{"time \\目标ip /set 同步时间";onMenu };
{"time \\目标ip /set /yes 同步时间并取消确认";onMenu };
} }
}}
{"netstat"; {
{"netstat -a 查看开启了哪些端口";onMenu };
{"netstat -n 查看端口的网络连接情况,";onMenu };
{"netstat -an 查看端口";onMenu };
{"netstat -v 查看正在进行的工作";onMenu };
{"netstat -p 协议名 查看某协议使用情况";onMenu };
{"netstat -p tcq/ip 查看tcp/ip协议使用情况";onMenu }
{"netstat -s 查看正在使用的所有协议使用情况";onMenu }
{"nbtstat -A ip 看对方最近登陆的用户名";onMenu }
} }
{"nbtstat"; {
{"nbtstat -A ip 看对方最近登陆的用户名";onMenu }
} }
{"tracert -参数 ip 跟踪路由";onMenu }
{"ping ip(或域名) 向对方主机发送默认大小为32字节的数据";onMenu }
{"ipconfig /all 显示全部网卡配置信息";onMenu };
{"telnet ip 端口 远程登陆服务器";onMenu }
{"netsh 查看或更改本地网络配置情况";onMenu }
{"arp -a 查看全部ARP缓存";onMenu }
} )
menu.add( "文件命令", {
{"dir 查看文件";onMenu }
{"dir /Q 显示文件及目录属系统哪个用户";onMenu }
{"dir /T:C 显示文件创建时间,";onMenu }
{"dir /T:A 显示文件上次被访问时间,";onMenu }
{"dir /T:W 上次被修改时间 ";onMenu }
{"attrib 文件名(目录名) 查看某文件(目录)的属性 ";onMenu }
{"attrib 文件名 -A -R -S -H H 去掉某文件的存档,只读,系统,隐藏属性";onMenu }
{"attrib 文件名 +A +R +S +H 添加某文件的存档,只读,系统,隐藏属性";onMenu }
{"del -F 文件名 加-F参数后就可删除只读文件";onMenu }
{"del -F 文件名 /AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件";onMenu }
{"del -F /A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件";onMenu }
{"DEL/A-S *.* 删除当前目录下除系统文件以外的所有文件";onMenu }
{"del /S /Q 目录 删除目录及目录下的所有子目录和文件";onMenu }
{"rmdir /s /Q 目录 /S 删除目录及目录下的所有子目录和文件 ";onMenu }
{"move 要移动的文件名 存放移动文件的路径 移动文件 ";onMenu }
{"fc one.txt two.txt > 3st.txt 对比二个文件并把不同之处输出到3st.txt文件中 ";onMenu }
{"copy 路径\文件名1 路径\文件名2 /y 复制文件1到指定的目录为文件2";onMenu }
{"copy c:\srv.exe \\ip\admin$ 复制本地c:\srv.exe到对方的admin下 ";onMenu }
{"cppy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件";onMenu }
{"copy \\ip\admin$\*.* c:\ 复制对方admini$共享下的所有文件至本地C: ";onMenu }
{"xcopy 要复制的文件或目录 ";onMenu }
{"for 对一组文件中的每一个文件执行某个特定命令 ";onMenu }
{"findstr ""Hello"" aa.txt 在aa.txt文件中寻找字符串hello";onMenu }
{"find 文件名 查找某文件 ";onMenu }
{"format 盘符 /FS:类型 格式化磁盘";onMenu }
{"md 目录名 创建目录 ";onMenu }
{"replace 源文件 要替换文件的目录 替换文件 ";onMenu }
{"ren 原文件名 新文件名 重命名文件名";onMenu }
{"tree 以树形结构显示出目录 ";onMenu }
{"tree -f 将列出第个文件夹中文件名称 ";onMenu }
{"type 文件名 显示文本文件的内容";onMenu }
{"more 文件名 逐屏显示输出文件";onMenu }
} )
menu.add( "IIS服务命令", {
{"iisreset /reboot 重启win2k";onMenu }
{"iisreset /start 启动Internet服务";onMenu }
{"iisreset /start 停止Internet服务";onMenu }
{"iisreset /restart 重新启动Internet服务";onMenu }
{"iisreset /status 显示Internet服务状态 ";onMenu }
{"iisreset /enable 启用Internet服务的重新启动";onMenu }
{"iisreset /disable 禁用Internet服务的重新启动";onMenu }
{"iisreset /rebootonerror 当启动、停止或重新启动Internet服务时,若发生错误将重新开机 ";onMenu }
{"iisreset /noforce 若无法停止Internet服务,将不会强制终止Internet服务 ";onMenu }
} )
menu.add( "设置", {
{"自动清屏";
function(id){
winform.autoCls = !winform.menu.checked(id,0)
winform.menu.check(id,winform.autoCls,0)
}
}
} )
import win.path;
import string.cmdline;
//输入字符到子进程
winform.editCon.wndproc = function(hwnd,message,wParam,lParam){
if( message == 0x102/*_WM_CHAR*/){
if( winform.process ){
if( winform.editCon.mbc ){
table.push( winform.editCon.mbc,wParam & 0xFF )
winform.process.write( string.pack( winform.editCon.mbc ) );
winform.editCon.mbc = null;
return;
}
if( wParam <= 0x80 ){
if( wParam == 13 ){
winform.process.write('\r\n');
}
elseif( wParam >= 32 && wParam <= 126 ){ //可打印字符
winform.process.write( string.pack( wParam & 0xFF ) );
}
}
else {
winform.editCon.mbc = { wParam & 0xFF };
}
}
}
}
winform.button.oncommand = function(id,event){
if( winform.autoCls ){
winform.btnCls.oncommand();
}
if( winform.process ){
winform.process.process.terminate();
winform.process.close();
}
winform.editCon.setFocus()
var cmdline = winform.editCmd.text;
winform.process = process.popen.cmd(cmdline) // 创建进程
if(!winform.process){
winform.editCon.print('错误的命令行或参数');
winform.editCmd.selectAll();
return;
}
//将命令行输出自动转发到文本框
winform.process.logResponse(winform.editCon);
}
winform.btnCls.oncommand = function(id,event){
winform.editCon.text = ""
}
winform.editCmd.onOk = function(){
winform.button.oncommand();
return true;
}
winform.onOk = winform.editCmd.onOk
winform.show()
win.loopMessage();
Markdown 格式