一个外部调用的问题!

mimi2001 2002-05-08 03:04:13
请问一下
如何将批处理文件的语句,加入delphi的应用程序中,
如 msdos下的语句 e:\ kqgl> copy\\2111(机器名)\kqgl\kqgl.mdb /y
如何将以上语句 加入到 程序当中
我想把这语句加入到一个buttonclick 的语句中
请教一下如何实现
...全文
50 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mimi2001 2002-05-13
  • 打赏
  • 举报
回复
anggogo(angGoGo)
你好!
我是要把这个功能加到程序里,好象是要调用外部函数的,是不是啊?
要不你教的语句要加到哪儿啊
anggogo 2002-05-10
  • 打赏
  • 举报
回复
都说了把你执行的DOS命令写到一个 cmd 文件里,然后 shellexecute 它,就可以了。

基本上MS的安装程序都是用这些方法,不过他们是写一些VBSCRIPT
anggogo 2002-05-10
  • 打赏
  • 举报
回复
呵呵,有必要那么夸张用到API吗?只不过执行DOS脚本
mimi2001 2002-05-10
  • 打赏
  • 举报
回复
怎么还没有人回答呢?!
可以送分的,我有很多分可以送的。请会的教教我!
icesnowerls 2002-05-10
  • 打赏
  • 举报
回复
The CreateProcess function creates a new process and its primary thread. The new process executes the specified executable file.

BOOL CreateProcess(

LPCTSTR lpApplicationName, // pointer to name of executable module
LPTSTR lpCommandLine, // pointer to command line string
LPSECURITY_ATTRIBUTES lpProcessAttributes, // pointer to process security attributes
LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes
BOOL bInheritHandles, // handle inheritance flag
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // pointer to new environment block
LPCTSTR lpCurrentDirectory, // pointer to current directory name
LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO
LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION
);


anggogo 2002-05-10
  • 打赏
  • 举报
回复
runstr:='isql -S ' + sname + ' -i ' + pUnit.getPath + '\database\createdb.sql -U ' + uname + ' -P ' + upwd;
AssignFile(F1,getPath + '\database\setup.cmd');
rewrite(f1);
write(f1,runstr);
closeFile(f1);
If MessageBox(0,'Are you ready to create database?' + #13+#13 + 'Remember:'+#13+' If you had already created,redo this will destroy all your data.','Message',MB_YESNO)=IDYES then
begin
Messagebox(0,' Please wait a several seconds... ','Message',MB_OK);
ShellExecute(0,'',PChar(pUnit.getPath + '\database\setup.cmd'),nil,nil,SW_NORMAL);
end;
anggogo 2002-05-10
  • 打赏
  • 举报
回复
用语句生成一个 cmd 文件,CMD 是在DOS上运行的命令行文件。

往这个文件里写你要运行的所有命令,包括什么 copy del 之类的,然后 shellexecute 这个文件就可以

mimi2001 2002-05-10
  • 打赏
  • 举报
回复
anggogo(angGoGo) :
不好意思,我还是不懂耶,能不能写一下,谢谢你了,我太笨了。
mimi2001 2002-05-09
  • 打赏
  • 举报
回复
if
winexec(pchar('e:\kqglxt> copy\\2111\数据库更新\dbkqgl.mdb /y'),sw_hide)=true
then
showmessage('数据库更新已完成!')
else
showmessage('数据库更新未完成!')

不好意思,以上的语句是不是有很大的问题,但是我不知道该怎么写,请改正。
mimi2001 2002-05-09
  • 打赏
  • 举报
回复
bob7946(X度空间)
你好!我把你的语句加入后,点击后怎么设置提示,数据库更新完成呢?不过,好象这个语句没有执行。
谢谢,请告诉我是哪儿做的有问题,好吗?
Bob7946 2002-05-08
  • 打赏
  • 举报
回复
这样的:

winexec(pchar('e:\ kqgl> copy\\2111(机器名)\kqgl\kqgl.mdb /y'),sw_hide);
anggogo 2002-05-08
  • 打赏
  • 举报
回复
你可以动态生成一个CMD文件啊,然后执行它

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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