网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
通过DELPHI小程序在WINDOWS下更好地使用DOS批处理
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

我们知道 DOS 下的批处理程序中,可以用 ECHO 显示一段信息(提示信息或出错信息),对于要接收用户输入的情况,MS-DOS 本身提供的外部程序就只有 CHOICE 能让用户输入一个键,所以基本上只能用于菜单选择。对于下述两个需求,那就只有另外编程序了:
1、在 DOS 下的批处理程序中通过 WINDOWS 对话框显示一段提示信息或出错信息
2、在 DOS 下的批处理程序中通过 WINDOWS 对话框接收用户输入的一个字符串,并对其进行后续处理

对于这两个问题,相信有些人已经有了一些解决方案。在此我提出我的解决方案,是用 DELPHI 写的程序(这些DELPHI程序都是没有 FORM 和.PAS文件的),我觉得比较简单,作为抛砖引玉。

1.1 显示提示信息 SHOWMSG.DPR
program ShowMsg;
uses Windows;
{$R *.RES}
begin
  if ParamCount < 2 then
begin
MessageBox(0, ''用Windows对话框显示信息''#13#10+
''用法: ShowMsg 提示信息 对话框标题'',
''用法说明'', MB_ICONINFORMATION);
Halt;
end;
MessageBox(0, PChar(ParamStr(1)), Pchar(ParamStr(2)), MB_OK);
Halt;
end.

1.2 显示出错信息 EmsgDlg.DPR
program EmsgDlg;
uses Windows;
{$R *.RES}
begin
if ParamCount < 2 then
begin
MessageBox(0, ''用Windows对话框显示出错信息''#13#10+
''用法: EmsgDlg 出错信息 对话框标题'',
''用法说明'', MB_ICONINFORMATION);
Halt;
end;
MessageBox(0, PChar(ParamStr(1)), PChar(ParamStr(2)), mb_IconHand);
Halt;
end.

2. INPUTBOX.DPR: 通过 WINDOWS 对话框接收用户输入的一个字符串,并把用户输入作为调用一个批处理程序或其他程序的第1个参数
program INPUTBOX;
uses Dialogs, Windows;
{$R *.RES}
var
NewString: string;
ClickedOK: Boolean;
begin
if ParamCount < 4 then
begin
MessageBox(0, ''将用户输入作为.BAT或其他程序的参数调用''#13#10+
''用法: InputBox .BAT或其他程序文件名 缺省输入 对话框标题 提示信息'',
''InputBox用法说明'', MB_ICONINFORMATION);
Halt;
end;
NewString := ParamStr(2); //default string
ClickedOK := InputQuery(ParamStr(3), ParamStr(4), NewString);
if ClickedOK then
WinExec(PChar(ParamStr(1) + '' '' + NewString), SW_SHOWNORMAL);
Halt;
end.


用法举例:
PRT.BAT文件内容:
@ECHO OFF
D:\POS\INPUTBOX.EXE PR30.BAT "99991231" "解压POS报表文件并用写字板打开入帐汇总表" "请输入日期:"

PR30.BAT文件内容:
@ECHO OFF
IF "%1"=="" GOTO END
D:
CD \POS\INBOX
IF NOT EXIST POS%1.ARJ GOTO NOT_FOUND
D:\POS\ARJ X -y POS%1.ARJ
CD D:\POS\INBOX\pos_report
IF NOT EXIST Pr30B%1.txt GOTO PR30_NOT_FOUND
C:\WINDOWS\WRITE Pr30B%1.txt
D:\POS\ShowMsg "成功!" "OK!!!"
GOTO END

:NOT_FOUND
D:\POS\EmsgDlg "文件D:\POS\INBOX\POS%1.ARJ找不到!" "出错!"
CD D:\
GOTO END

:PR30_NOT_FOUND
D:\POS\EmsgDlg "文件D:\POS\INBOX\pos_report\Pr30B%1.txt找不到!" "出错!"
CD D:\
GOTO END

:END

注:上述 DELPHI 程序编译后,INPUTBOX.EXE大小是308KB,EMSGDLG.EXE 和 ShowMsg.exe大小都是 17KB,没有比较用 VC 或 BCB 来写的结果。但可以肯定,用 WIN32 汇编产生的 .EXE 最小,不过我没有仔细学过 WIN32 汇编。欢迎有兴趣的大侠比较一下或提出改进方法。

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号