C语言的system函数问题

wyf156470292 2014-11-23 09:45:10
system大家都知道哈,用来调用dos指令的。
可是我最近发现,soundrecorder和SnippingTool都不能调用
这两个分别是win7系统的录音和截图工具,打开cmd可以运行,但是用C语言中的system调用却不成功
望高人指点三四啊
...全文
528 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2014-12-01
  • 打赏
  • 举报
回复
在PATH环境变量里的命令都可以的啊。
赵4老师 2014-12-01
  • 打赏
  • 举报
回复
总是发现Path环境变量被某些软件安装时错误修改。比如带空格的目录名未加引号、带汉字的目录引起目录查找混乱等问题,严重影响系统查找可执行文件和dll。 编译此源代码,生成PathShortener.exe,然后在cmd窗口里面运行PathShortener.exe>path.txt,打开path.txt,手动将其内容拷贝粘贴覆盖修改‘我的电脑、属性、高级、环境变量、系统变量、Path、编辑、变量值’即可纠正设置错误的Path http://download.csdn.net/detail/zhao4zhong1/2652343
「已注销」 2014-11-28
  • 打赏
  • 举报
回复
引用 8 楼 zhao4zhong1 的回复:
[quote=引用 7 楼 SXJIAKE 的回复:] [quote=引用 6 楼 wyf156470292 的回复:] [quote=引用 3 楼 SXJIAKE 的回复:] 调用命令行内置命令的,不是外部 exe。比如: copy、ren 等由 cmd.exe 原生提供,可以调用。 xcopy、reg 等由位于 system32 中的 xcopy.exe、reg.exe 提供,不能调用。
notepad在system32中也有exe程序呀,不太懂……可以再详细点吗?[/quote] 經測試: system("notepad.exe"); 根本無法執行,打出來: 'notepad.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。[/quote] 需要提示你path环境变量中没有指向notepad.exe所在目录c:\windows\system32吗? 需要提示你Linux下没有notepad.exe吗? 需要提示你可能notepad.exe文件被谁删掉了吗? 需要吗? [/quote] 不需要,我如果连这些常识不知道还来这里搞什么?不过原因我找到了,并非不支持,而是我用的编译器的“编译运行”调起来程序就不行,而单独运行或在 cmd 里运行是可以的。不知道这个编译器做了什么操作,使我的环境变量发生了变化。
赵4老师 2014-11-28
  • 打赏
  • 举报
回复
引用 7 楼 SXJIAKE 的回复:
[quote=引用 6 楼 wyf156470292 的回复:] [quote=引用 3 楼 SXJIAKE 的回复:] 调用命令行内置命令的,不是外部 exe。比如: copy、ren 等由 cmd.exe 原生提供,可以调用。 xcopy、reg 等由位于 system32 中的 xcopy.exe、reg.exe 提供,不能调用。
notepad在system32中也有exe程序呀,不太懂……可以再详细点吗?[/quote] 經測試: system("notepad.exe"); 根本無法執行,打出來: 'notepad.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。[/quote] 需要提示你path环境变量中没有指向notepad.exe所在目录c:\windows\system32吗? 需要提示你Linux下没有notepad.exe吗? 需要提示你可能notepad.exe文件被谁删掉了吗? 需要吗?
「已注销」 2014-11-28
  • 打赏
  • 举报
回复
引用 6 楼 wyf156470292 的回复:
[quote=引用 3 楼 SXJIAKE 的回复:] 调用命令行内置命令的,不是外部 exe。比如: copy、ren 等由 cmd.exe 原生提供,可以调用。 xcopy、reg 等由位于 system32 中的 xcopy.exe、reg.exe 提供,不能调用。
notepad在system32中也有exe程序呀,不太懂……可以再详细点吗?[/quote] 經測試: system("notepad.exe"); 根本無法執行,打出來: 'notepad.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。
wyf156470292 2014-11-27
  • 打赏
  • 举报
回复
引用 3 楼 SXJIAKE 的回复:
调用命令行内置命令的,不是外部 exe。比如: copy、ren 等由 cmd.exe 原生提供,可以调用。 xcopy、reg 等由位于 system32 中的 xcopy.exe、reg.exe 提供,不能调用。
notepad在system32中也有exe程序呀,不太懂……可以再详细点吗?
wyf156470292 2014-11-27
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
将要调用的命令写到一个临时批处理文件比如tmp.bat中,然后system之。
敢问大师如何system这个批处理文件
赵4老师 2014-11-25
  • 打赏
  • 举报
回复
将要调用的命令写到一个临时批处理文件比如tmp.bat中,然后system之。
「已注销」 2014-11-25
  • 打赏
  • 举报
回复
调用命令行内置命令的,不是外部 exe。比如: copy、ren 等由 cmd.exe 原生提供,可以调用。 xcopy、reg 等由位于 system32 中的 xcopy.exe、reg.exe 提供,不能调用。
Isnis-fallen 2014-11-24
  • 打赏
  • 举报
回复
这个函数支持的函数有限
w74839520 2014-11-23
  • 打赏
  • 举报
回复
权限问题,猜测

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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