美文网首页学习笔记
面向小白的C语言教程(003)-让程序执行DOS命令及调用系统功

面向小白的C语言教程(003)-让程序执行DOS命令及调用系统功

作者: 爱学习的老周 | 来源:发表于2019-04-22 20:58 被阅读47次

1、让程序执行DOS命令

新建项目并命名为CMD

新建源文件CMD.cpp代码如下:

#include<stdio.h>
void main() {
    printf("你好,世界");
    getchar();
}

项目生成,这时候在文件管理中的CMD项目中会有一个debug文件夹,打开后会看到CMD.exe,调试时访问此文件即可。

win+R打开cmd窗口,如果CMD.exe在C盘中,将CMD.exe的命令行复制下来直接粘贴到cmd窗口中就可以运行,如果在其它盘符,就需要先跳转到其它盘符,例如我的在E盘,先输入
cd\

019.png
再输入
E:
020.png
再将其目录粘贴在后面就可以了。
021.png
如何写一个程序进行上述过程呢?

这里我们学习一个新的函数,system(""), 在头文件stdio.h里括号里填写的字符串在程序运行时将会在CMD窗口里执行,system("")函数只有一个参数。

例如我们写代码如下:

#include<stdlib.h>
void main() {
    system("ipconfig");
    //暂停
    system("pause");
}
调试效果如下: 022.gif

可以看出这和在CMD窗口里输入DOS命令ipconfig的效果是一样的。
同样的道理,我们打印字符串时并不是只能用printf()函数,也可以用system(“echo ...”).
我们保留上面的CMD项目,并新建另一个项目CDM-test,将其设置为启动项目(调试时只执行解决方案中那个已经设置了启动项目的项目):

023.gif 我们演示一下用CMD-text.exe来执行CMD.exe的方法,我们将CMD-test.cpp编写如下:
#include<stdlib.h>
void main() {
    system("echo 开始执行test");
    system("pause");
    system("E:\\CPPprojects\\CMD\\x64\\Debug\\CMD.exe");
    //为什么斜杠总有两个?因为其中一个是转义字符,现在记住就行了,以后会讲。
    system("echo test执行结束");
}
调试效果如下: 024.gif

通过以上方法,任何DOS命令都可以通过黑窗口C程序执行,任何CMD黑窗口C程序都可以在CMD窗口中通过命令行执行,所有C程序也都可以通过此方法调用其他黑窗口C程序。

2、调用系统功能

通过C程序调用系统的功能,这里我们学习一个函数MessageBox(0,“”,“”,0),此函数在头文件Windows.h中,有4个参数。我们编写以下代码:

#include<stdio.h>
#include<Windows.h>
void main() {
    printf("hello world");
    MessageBox(0, "你好,世界", "hello world", 0);
    //第一个参数是依赖的窗口编号,代表着由谁来弹出窗口,设置为0就是系统弹出。
    //第二个参数是对话框的内容
    //第三个参数是对话框的标题
    //第四个参数是对话框的类型,设置成0即可。
    system("pause");
}
调试效果如下: 025.gif

通过C程序打开文件:

#include<stdio.h>
#include<Windows.h>
void main() {
    printf("hello world");
//  MessageBox(0, "你好,世界", "hello world", 0);
    //打开文件
    ShellExecute(0,"open", "E:\\01.txt", 0, 0, 1);
    //暂停
    system("pause");
    //打开网站
    ShellExecute(0, "open", "https://www.baidu.com", 0, 0, 1);
    //暂停
    system("pause");
}
调试效果如下: 026.gif

还可以打开软件:

#include<stdio.h>
#include<Windows.h>
void main() {
    ShellExecute(0, "open", "E:\\QQ\\Bin\\QQScLauncher.exe", 0, 0, 1);
    //暂停
    system("pause");
}
效果如下: 027.gif

除了文件,也可以打开文件夹,打印文档等(把参数open换成print就可以了)

打开系统程序不需要加路径:

#include<stdio.h>
#include<Windows.h>
void main() {
    //打开记事本
    ShellExecute(0, "open", "notepad", 0, 0, 1);
    //暂停
    system("pause");
}
效果如下: 028.gif

第一个参数也是依赖窗口编号,0代表系统。第二个参数是执行什么操作,一般只有print/open。第三个参数是文件路径/名称/网址,第四个第五个是系统保留参数,设置为0即可。最后一个参数是控制打开窗口的大小(最大化,最小化,显示,隐藏等),把上面的代码最后一个参数改成6,就会以最小化的方式打开。读者自行演示。

关注微信公众号axxd_lz回复【C语言】获取视频教程和电子书。

相关文章

  • 面向小白的C语言教程(003)-让程序执行DOS命令及调用系统功

    1、让程序执行DOS命令 新建项目并命名为CMD 新建源文件CMD.cpp代码如下: 项目生成,这时候在文件管理中...

  • C语言教程目录(更新中)

    面向小白的C语言教程(001)-计算机基础及C语言概述面向小白的C语言教程(002)-创建第一个C语言项目面向小白...

  • 1.4系统调用

    命令接口:面向用户,用户说一句,系统做一句程序接口:由面向程序的一组系统调用组成系统调用:是操作系统提供给应用程序...

  • 有哪些比较好的 C 语言视频教程推荐?

    全面的C语言教程,可以看黑马程序员C语言教程:轻松掌握C语言视频教程(会打字就能学会);或者是C语言小白入门基础教...

  • windows dos命令大全

    什么是DOS命令 DOS命令,计算机术语,是指DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命...

  • java-learn

    java语言跨平台的 : 它的程序是由jvm来执行的,不是直接让操作系统执行java语言:面向对象的语言 java...

  • C语言程序设计学习--经典实例100题(第三部分)

    之前看黑马程序员的免费教程自学C语言,大一成功拿到了C语言证书。 附上自学教程:轻松掌握C语言视频教程(会打字就能...

  • shell 快速入门的知识点 待续。。

    shell本身是一个命令解释器,介于操作系统的内核(kernel)态和用户态之间,可以执行系统调用及系统命令等,让...

  • Android 截屏的三种方法

    第一种 调用“su”命令执行截屏 执行“su”命令,需要设置为系统程序,android:sharedUserId=...

  • 计算机技术

    科学路线 计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统...

网友评论

    本文标题:面向小白的C语言教程(003)-让程序执行DOS命令及调用系统功

    本文链接:https://www.haomeiwen.com/subject/jwtpgqtx.html