| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3832 人关注过本帖
标题:用delphi7怎么调用DOS并显示在label(标签)里??
取消只看楼主 加入收藏
lfkm
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-4-19
结帖率:100%
收藏
 问题点数:0 回复次数:7 
用delphi7怎么调用DOS并显示在label(标签)里??
我想在一个TEXT控件里输入dos命令 dir c\*.*. 然后按确定后,dos里显示的内容都转到label(标签)里显示,而不是在dos里显示..(界面上有TEXT、BUTTON、LABEL三个控件)
那位高手能帮帮忙写出一个完整的源代码吗?我看了几天网上介绍都看不懂,也不是我想要的结果.
搜索更多相关主题的帖子: label DOS 
2008-04-19 19:35
lfkm
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-4-19
收藏
得分:0 
谢谢楼上的高手.至于用LABEL还是MEMO,是个人喜欢,我是个新手只知道LABEL可以显示,还没有懂得别的控件可用呢.
那你就改用MEMO吧.
可是我在TEXT里输入DIR.结果是'调用DIR失败'
问题出在哪?
2008-04-19 20:45
lfkm
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-4-19
收藏
得分:0 
[bo]以下是引用 [un]yeye55[/un] 在 2008-4-19 22:17 的发言:[/bo]



要输入:cmd /c dir

好像只对存放delphi文件路径有用.我把CMD /C DIR改为CMD /F DIR就看存放该文件路径了.
CMD /C DIR中的/C是不是C盘?
2008-04-20 01:22
lfkm
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-4-19
收藏
得分:0 
[bo]以下是引用 [un]DreamHK[/un] 在 2008-4-19 21:45 的发言:[/bo]

设置label1的AutoSize属性为false,WordWrap属性为true.

procedure TForm1.Button1Click(Sender: TObject);
var
  cmd:string;
  tmp:integer;
  buffer:array [0..1000]of char;
begin
  cmd:=edit1.Text;
  winexe ...

这方法对用DIR很合我意思了..哈哈..只是我再用ipconfig想查下IP就要等好久和狂按按钮才看它一闪而过,为什么会这样呢?
2008-04-20 01:31
lfkm
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-4-19
收藏
得分:0 
[bo]以下是引用 [un]DreamHK[/un] 在 2008-4-19 21:49 的发言:[/bo]

用memo控件的话更简单:
procedure TForm1.Button1Click(Sender: TObject);
var
  cmd:string;
begin
  cmd:=edit1.Text;
  winexec(pchar('cmd /c '+cmd+' >tmp.tmp'),sw_hide);
  sleep(100);
  memo1.Lines.LoadFr ...

用这个使用ipconfig就直接报错.说有另一个程序在使用它之类的.
不过还是谢谢高手了..哈哈...解决一个又出来一个...
2008-04-20 01:46
lfkm
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-4-19
收藏
得分:0 
[bo]以下是引用 [un]yeye55[/un] 在 2008-4-20 09:28 的发言:[/bo]



cmd 是启动命令行的意思,/c 的意思是启动命令行后执行随后的命令,dir 是一个内部命令,例如:查看F盘根目录就要输入 cmd /c dir f:\

ipconfig 是一个外部命令,外部命令是以一个单独的可执行文件形式存放,ipconfig.exe 位 ...

谢谢了.辛苦了..哈哈...
2008-04-20 12:16
lfkm
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-4-19
收藏
得分:0 
[bo]以下是引用 [un]provoke[/un] 在 2008-4-20 16:07 的发言:[/bo]

有和种更容易理解、更容易实现的方法,但要稍稍“绕”一下圈子:
把执行命令的结果,即原本在命令提示符里显示的,保存为文本文件,然后再将文本文件的内容加载到Memo,最后删除临时文件。

其中的关键操作都比较简单:
Command>fi ...

你说的这种方法应该就是批处理文件方法吧.不过我连它的格式都不会写呢.
2008-04-20 20:52
lfkm
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-4-19
收藏
得分:0 
[bo]以下是引用 [un]DreamHK[/un] 在 2008-4-20 17:22 的发言:[/bo]



sleep(100);//如果要执行的命令比较耗时,请设置一定的等待时间.(内部命令不必...)
你没注意我这句话吧.ipconfig的执行是比较耗时的...所以会导致执行结果还未完全写入文件就被读取了... 而管道操作又是以独占方式 ...

我是没明白你的那个注释而不是没有看到..哈哈...
是不是现在把它改为SLEEP(10)就出现快了(不管对错).
2008-04-20 20:57
快速回复:用delphi7怎么调用DOS并显示在label(标签)里??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027944 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved