C语言和DOS命令的问题、用C语言调用DOS命令的问题!

来源:百度知道 编辑:UC知道 时间:2024/05/08 15:13:39
DOS命令:
@echo off
mshta vbscript:createobject("sapi.spvoice").speak("你好!我是我!")(window.close)
pause

C语言:我想调用:“mshta vbscript:createobject("sapi.spvoice").speak("你好!我是我!")(window.close)”---还有如果我想调用:“for /f "delims=" %%i in ('dir /ah /s/b') do attrib "%%i" -s -h”这一命令---命令方法如下是方法都不行的;有谁能帮帮我吗?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
system("mshta vbscript:createobject("sapi.spvoice").speak("你好!我是我!")(window.close)");
system("PAUSE");
return 0;
}

如果解决不了的,看看这一思路能不解决:用C语言编写一个程序,该程序可以生成一个*.bat文件,*.bat文件的内容:for /f "delims=" %%i in ('dir /ah /s/b') do attrib "%%i" -s -h
然后C语言自动再打开*.bat,最后C语言自动删除这个*.bat!我的要求是:生成*.bat和运行*.bat的方式均以隐藏的状态进行的!哪位好心人帮帮我吧!
有其他思路的也行!我会加分的!这次先给100分!

在标准c里""中的"要保持原来的作用需做特殊处理:即需要加转义字符\
如果是%,需改成%%
例如:system("mshta vbscript:createobject("sapi.spvoice").speak("你好!我是我!")(window.close)");
应该写成:system("mshta vbscript:createobject(\"sapi.spvoice\").speak(\"你好!我是我!\")(window.close)");