关于用MEMO或RICHEDIT编写SHELL

123anmanny 2007-05-10 05:22:29
我想用BCB6模拟一个SHELL,登录后可以运行我自己写的命令
用哪个比较合适,如果在输入命令,回车后得到输入的是什么命令,再做相关的操作
...全文
208 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
123anmanny 2007-05-20
  • 打赏
  • 举报
回复
谢谢yctin(呆呆鱼)的分享,你的方法不错

TIdTelnet好像作用不大,也没用过

呵呵,结贴了,再次谢谢各位
jacknes009 2007-05-16
  • 打赏
  • 举报
回复
你可以用TIdTelnet
我不懂电脑 2007-05-11
  • 打赏
  • 举报
回复
你可以用TIdTelnet
yctin 2007-05-10
  • 打赏
  • 举报
回复
分享一下我的做法...

用read only 的MEMO或RichEdit做,其实只要是可以出字的就行,自画也可以

捕捉用户的按键存在一个字串中
当用户按下 enter 时分析字串,执行工作...
而按下 del 或 backspace只要在字串中进行条改并显示到MEMO就可以

因为是read only的所以你可以很准确的定位,而不用考虑太多用户的操作影响

MEMO / RichEdit的作用是一个输出介面,实际上所有字都是程式加上去的
你可以很方便的实现根据用户输入,做高亮,自动完成等功能
123anmanny 2007-05-10
  • 打赏
  • 举报
回复
谢谢三楼

我的目的是自己写一个shell,里面的命令都虽然我自己编写,
例如dir,ls,不能用系统自带的命令

但问题的当用户登录后会出现用户名,例如:user1>
用户改变当前目录,例如:user1\test>
当用户输入命令,按回车后,我如何捕抓到用户输入的命令
用lines->string和carepos虽然可以拿到当前行的字符串
但也包含其他信息
除了逐个字符的分析这串字符取>的位置外,还有没有更好的方法

另外,我想另光标前的字符不能删除,光标后的就可以任意篇辑,就像CMD那样
例如:user>
>号之前的不能篇辑,而>号之后的,即用户输入的命令,可以任意篇辑
这样该如何实现
FFSB 2007-05-10
  • 打赏
  • 举报
回复
登录后可以运行我自己写的命令
============================
是程序里写好的或用户输入的?
前者不用编写Shell用ShellExecute
后者用Memo/单色或RichEdit/彩色
TMemo:OnKeyPress里检查VK_RETURN并用CaretPos取行号
用Lines->Strings[]取命令
调用ShellExecute.

如果还要返回信息,则用CreateProcerss和Pipe
zwh202342 2007-05-10
  • 打赏
  • 举报
回复
直接扔给系统执行,执行错误则返回error,

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧