//命令行窗口化 //相关范例:进程 > 管道 import win.ui; import win.ui.menu; import process.popen; /*DSG{{*/ var winform = win.form(text="DOS命令行窗口化工具";right=760;bottom=595;bgcolor=0xFFFFFF;) 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();