在C++中执行cmd指令的两种方法:
方法1:system("calc");
方法2: WinExec("calc",SW_NORMAL);
相关提醒:
1.使用这两个函数时不需要另外添加头文件,因为system函数声明在了stdlib.h中,而WinExec函数声明在了WinBase.h中。
2.一定要注意两种方法的区别,具体如下所示,
system函数在执行时,不会顺序执行接下来的代码,而会停留在system语句上,直到cmd指令执行完毕;
WinExec函数在执行时,会顺序执行接下来的代码,不管其cmd指令是否执行完成;
用DOS命令启动服务程序或关闭服务程序:
1、使用 net start/stop 命令启动服务程序或关闭服务程序
net start ServiceName(服务名称)
net stop ServiceName(服务名称)
如果服务名称中带有空格,需要用双引号引起来。比如:
C:\>net start “Windows Firewall/Internet Connection Sharing (ICS)”
Windows Firewall/Internet Connection Sharing (ICS) 服务正在启动 .
Windows Firewall/Internet Connection Sharing (ICS) 服务已经启动成功。
C:\>net stop “Windows Firewall/Internet Connection Sharing (ICS)”
Windows Firewall/Internet Connection Sharing (ICS) 服务已成功停止。
2、使用 sc 命令启动服务程序或关闭服务程序
sc start ServiceName(服务名称)
sc stop ServiceName(服务名称)
比如:
C:\>sc start Apache_pn
SERVICE_NAME: Apache_pn
TYPE : 10 WIN32_OWN_PROCESS
STATE : 2 START_PENDING
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x7d0
PID : 8756
FLAGS :
C:\>sc stop Apache_pn
SERVICE_NAME: Apache_pn
TYPE : 10 WIN32_OWN_PROCESS
STATE : 3 STOP_PENDING
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x4
WAIT_HINT : 0x7530
附:
cmd net start 服务 提示系统错误5 拒绝访问怎么办?
两种情况:
1、没有管理员权限?
2、服务使用的端口被占用,比如web服务端口80端口,可能被迅雷、QQ旋风占用(可调整)。
XP下使用批处理关闭并禁止某个服务
C:\>sc config wuauserv start= disabled
[SC] ChangeServiceConfig SUCCESS
wuauserv为windows自动更新的服务名称。
使用 sc 安装一个服务 telnet
sc create TlntSvr binPath= “D:\WINDOWS\system32\tlntsvr.exe ” DisplayName= “Telnet ”
[SC] OpenService FAILED 1060:
没有已安装的服务存在
SC常用命令参数
sc create 创建一个服务
sc delete 删除一个服务
sc query 查询服务
sc config 配置服务
sc stop 关闭服务
sc start 开启服务
sc pause 暂停服务
SC简介
SC是一个与NT服务控制器,服务进程进行通信的控制台程序,它可以查询和修改已安装服务的数据库。
语法:sc [command] [service name]… ,选项为“\\ServerName”的形式。
主要的命令包括:query,config,qc,delete,create,GetDisplayName,GetKeyName,EnumDepend等。