C++呼叫CMD命令

小 樓 一 夜 聽 春 雨發表於2016-07-12
在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等。

相關文章