|
分享源码
界面截图: |
|
是否带模块: |
纯源码 |
备注说明: |
- |
CMD这个东西大家应该知道,匿名管道大家也应该知道
不知道的看看解析吧:
- 匿名管道是一种进程间的通讯方式,是相对于命名管道的概念提出的。
- 命名管道可用于任意两个进程间的通讯。
- 匿名管道仅可用于本地进程,并且必须是父进程与子进程间的通讯。
- 它的优点是运行速度快,系统消耗小。缺点就是以上的限制条件啦。
复制代码
这个还是很简单的了,就是一个进程通讯吧
网上关于用匿名管道仿CMD的帖子不少,可谁又做得了高仿?还别说,我真做出来了
先丢点图镇楼:
左边这个是假的(仿),右边是真,哈哈,这是点阵字体哦!!
原理:
1、建立WINGDOWS控制台程序
2、然后写代码:
标准输出 (1, #CMD基本输出信息 + #换行符 )判断循环首 (1 = 到整数 (“1”)) 标准输出 (1, #换行符 + 取运行目录 () + “>”)输入内容 = 标准输入 (真)SECURITY_ATTRIBUTES.nLength = 12 SECURITY_ATTRIBUTES.lpSecurityDescriptor = 0 SECURITY_ATTRIBUTES.bInheritHandle = 1 CreatePipe (hRead, hWrite, SECURITY_ATTRIBUTES, 0 ) STARTUPINFO.cb = 68 STARTUPINFO.dwFlags = 位或 ( #STARTF_USESHOWWINDOW, #STARTF_USESTDHANDLES )STARTUPINFO.wShowWindow = #SW_HIDE STARTUPINFO.hStdOutput = hWrite STARTUPINFO.hStdError = hWrite 如果 (取操作系统类别 () ≤ 2 )CreateProcess (0, “command.com /c ” + 输入内容, 0, 0, 真, 0, 0, 0, STARTUPINFO, PROCESS_INFORMATION ) CreateProcess (0, “cmd.exe /c ” + 输入内容, 0, 0, 真, 0, 0, 0, STARTUPINFO, PROCESS_INFORMATION ) CloseHandle (hWrite ) 判断循环首 (len ≠ -1 ) PeekNamedPipe (hRead, 0, 0, 0, len, 0 ) 如果 (len ≠ 0 )txt = 取空白字节集 (1024 )ReadFile (hRead, txt, 1023, len, 0 ) 标准输出 (1, 取字节集数据 (txt, #文本型, )) GetExitCodeProcess (PROCESS_INFORMATION.hProcess, EXIT ) 如果真 (EXIT ≠ #STILL_ACTIVE ) CloseHandle (hRead ) 跳出循环 ()处理事件 ()输出调试文本 (到文本 (len )) 判断循环尾 ()判断循环尾 ()返回 (0 )
哈哈,用WINDOWS控制台,界面什么的就不用愁了!输出点信息都是点阵字体!!
然后读入输入文本开启管道就是了,是不是特别简单呢?
老规矩:源码回复下载!
如果你觉得可以的,好评打赏走一波~
超仿CMD.zip
(11.62 KB, 下载次数: 987)
|
评分
-
查看全部评分
|