谷动谷力

 找回密码
 立即注册
查看: 4185|回复: 1
打印 上一主题 下一主题
收起左侧

C语言中应用程序运行系统命令system()CreateProcess()ShellExecuteEx()

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-25 23:44:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sunsili 于 2021-11-26 23:52 编辑

C语言中打开一个应用程序可以调用或运行命令system(),也可以调用操作系统的API函数,比如Windows系统可以调用CreateProcess()、ShellExecuteEx()等函数来打开一个应用程序。


举例
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main()
  4. {
  5.     printf("在windows上打开记事本程序\n");
  6.     system("notepad.exe");
  7.     return 0;
  8. }
复制代码




默认路径是源文件的路径。
如果指定别的路径,两种方法:
一是相对当前默认路径指定路径。
二是指定绝对路径。
譬如:
E:\C\c.c 这是源文件
E:\C\abc.exe
E:\D\abcd.exe
C:\A\aaa.exe
如果想执行abc.exe,那么可以不指定路径:
  1. #include <stdlib.h>

  2. int main()
  3. {
  4.      char *cmd="abc.exe";
  5.      system(cmd);
  6.      
  7.      return 0;
  8. }
复制代码


如果想执行abcd.exe,那么可如下指定路径:
  1. include <stdlib.h>

  2. int main()
  3. {
  4.      char *cmd="..\\D\\abcd.exe";
  5.     //指定相对路径
  6.     //char *cmd="E:\\D\\abcd.exe";
  7.     //指定绝对路径
  8.      system(cmd);
  9.      
  10.      return 0;
  11. }
复制代码


如果想执行aaa.exe,则必须指定绝对路径:
  1. #include <stdlib.h>

  2. int main()
  3. {
  4.      char *cmd="C:\\A\\aaa.exe";
  5.      system(cmd);
  6.      
  7.      return 0;
  8. }
复制代码


对于空格问题,可按如下方法解决
  1. #include <stdlib.h>

  2. int main()
  3. {
  4.      char *cmd="E:\\AB\" \"CD\\xyz.exe";
  5.     //即执行E:\AB CD\xyz.exe
  6.      system(cmd);
  7.      
  8.      return 0;
  9. }
复制代码




+10
回复

使用道具 举报

沙发
 楼主| 发表于 2018-6-25 23:46:42 | 只看该作者
  1. #include <stdlib.h>

  2. int main()
  3. {
  4.     char *cmd="E:\\AB\" \"CD\\xyz.exe";
  5.     //即执行E:\AB CD\xyz.exe
  6.      system(cmd);
  7.      
  8.      return 0;
  9. }
复制代码
+10
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-12-27 07:21 , Processed in 0.085762 second(s), 39 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表