在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天看到有人在问用代码执行CMD命令的问题,就总结一下用法,也算做个备忘。 Delphi中,执行命令或者运行一个程序有2个函数,一个是winexec,一个是shellexecute。这两个大家应该都见过,其中,winexec比较简单,可以直接运行一个外部程序,shellexecute则更高级一些,除了可以运行外部exe,还可以执行特殊命令。 下面我们就分别举例子说明:我们先来看看运行一个exe程序,以记事本为例:
使用Shellexecute注意需要uses ShellApi,上面的记事本,因为是在系统目录下,所以可以直接写notepad.exe文件名,而不必写路径,如果是其他非环境变量中注册的exe,则需要带上绝对路径或者相对路径 好,上面是最简单的,下面我们来说说带参数的运行,大家知道,有些exe程序在运行的时候可以附加参数,这里以cmd为例说明 比如,我想运行ping命令,去执行ping 192.168.1.1
注意,cmd的命令需要是用/c表示带参数运行,然后后面跟上具体命令,这样就可以执行ping命令了。 上面的命令的确可以成功运行,但是有个缺点,那就是cmd在执行完毕后就会自动关闭窗口,如果有时候命令执行的过快,我们根本看不清结果,那么,有什么办法可以让cmd在执行完毕后不关闭窗口呢?答案是肯定的,我们需要一个额外的命令pause
我们注意红色部分,我们使用一个&符号和pause,pause是批处理中的暂停命令,&符号则表示可以执行多个命令,上面的例子就表明,在执行完ping命令后再执行pause命令,这样,窗口就不会关闭了。shellexecute同样支持该方法。
下面,我们看看shellexecute其他的一些方法: 打开网页:这个太简单了,大家应该都知道
当然,shellexecute还支持在系统中注册过的关联命令。比如发邮件
执行这句就可以打开默认邮件客户端给[email protected]发邮件了,如果我们想带上主题和内容也很好办:
上面的就可以自动填写主题,内容和抄送了,注意,中文需要编码,否则可能出现乱码。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论