- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC調用DOS命令浅析
一、system 2
(一)函数原型: 2
(二)函数说明 2
(三)源码示例 3
二、WinExec 3
(一)函数原型 3
(二)函数说明 4
1,UINT WinExec( 4
2,参数uCmdShow可能的取值为 : 4
3,返回值 4
4,注意 5
5,示例程序 5
三、ShellExecute 5
(一)函数原型 5
1,功能: 6
2,示例; 6
(二)函数说明 6
1,参数说明 6
2,返回值 7
3,特殊用法 7
四、CreateProcess 9
(一)函数原型: 9
(二)参数: 9
0,参数简介 9
1, lpApplicationName: 10
2, lpCommandLine 11
3, lpProcessAttributes: 11
4, lpThreadAttributes: 12
5.,bInheritHandles: 12
6, dwCreationFlags: 12
6, lpEnvironment: 15
7, CurrentDirectory: 15
8, lpStartupInfo: 16
9, lpProcessInformation: 17
(三) 返回值: 17
(四)注释: 17
(五)其它应用(还未试成) 20
1、打开指定的URL 20
2、打开指定的文件夹 20
3、打开帮助文件 20
4、小结 20
(六)源码示例: 20
五、小结 24
一、system
(一)函数原型:
int system(const char * string)
1,功 能: 发出一个DOS命令
2,头文件stdlib.h
3,示例:
第一种:system(cd c:\\windows);
system(mk aaa);
第二种:system(mk c:\\windows\\aaa);
第三种:system(cd c:\\windows mk aaa);//这个符号与,把两条命令分别执行
(二)函数说明
system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
返回值
=-1: 出现错误
=0: 调用成功但是没有出现子进程
0: 成功退出的子进程的id
如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1,但是存在一个特殊情况,那就是:如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。
若参数string为空指针(NULL),则返回非零值。
在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。
(三)源码示例
#include stdlib.h
#include iostream.h
int main(void)
{
coutAbout to spawn and run a DOS command\n;
char strCMD[]=dir;
int i=system(strCMD);
coutiendl;
return 0;
}
二、WinExec
(一)函数原型
UINT WINAPI WinExec(LPCSTR lpCmdLine, UINT uCmdShow);
功能:执行一个Dos命令
头文件:在Console环境中, 加上#include windows.h,其它不加
示例:
比如你的程序路径为:F:\123,名字是1.exe 需要的参数是123,就写成这样:WinExec(cmd.exe /k F:\\1.exe 123,SW_HIDE); 1,UINT WinExec(
LPCSTR lpCmdLine, //命令行,如没指定路径会按以下顺序查找: 程序目录/当前目录/System32/Windows/PATH环境变量}
UINT uCmdShow //新启动程序显示方式 {启动选项}
2,参数uCmdShow可能的取值为 :
(1)在Win32里,当新启动进程(started process)调用GetMessage 或超时后,WinExec()结束执行。为了避免等待,可尽早的调用GetMessage
(2)WinExec能够带参数运行,但她的参数和程序在同一个字符串中
文档评论(0)