C 操作控制台(開啟程序 關閉程序 執行命令)

2021-09-26 08:10:44 字數 1727 閱讀 5379

做批處理不一定要用 .bat , c++ 也可以,所以這說明 c++ 是乙個多麼棒的語言 ? 錯 ——

因為我懶,所以我只寫成我能看懂的樣子。(這裡面有很多無關緊要的操作,你懂了吧)

有一點需要注意,開啟檔案一定不要用 system() ,這樣會導致無法得到控制台返回的資訊。

// 1. 開啟 d:\program files\nox\nox\bin\nox.exe

startupinfo si =

;// 程序在建立時的外觀資訊

process_information pi;

// 程序建立時的資訊

si.dwflags = startf_useshowwindow;

// startf_useshowwindow :wshowwindow 成員包含其他資訊

si.wshowwindow = true;

// 顯示新建程序的主視窗if(

!createprocess

(null

,// 不在此指定可執行檔案的檔名

_tcsdup

(text

("d:\\program files\\nox\\nox\\bin\\nox.exe"))

,// 命令列引數

null

,// 子程序不繼承新程序物件的控制代碼

null

,// 子程序不繼承新執行緒物件的控制代碼

false,

// 當前程序內控制代碼不被子程序繼承

null

,// 繼承父程序的控制台

null

,// 使用本程序的環境變數

null

,// 使用本程序的驅動器和目錄

&si,

// 指向 startupinfo 結構體的指標

&pi // 指向 process_information 結構體的指標))

// 2. sleep2分鐘

sleep

(30000);

// 3. 執行命令:adb.exe "connect 127.0.0.1:62001"

system

("adb connect 127.0.0.1:62001");

sleep

(3000);

system()

;// 5. sleep6小時

sleep

(21600000);

// 6. 關閉相關程序

system

("taskkill /f /t /im noxvmsvc.exe");

system

("taskkill /f /t /im noxvmhandle.exe");

system

("taskkill /f /t /im noxsrv.exe");

system

("taskkill /f /t /im nox.exe");

// end. 迴圈

goto begin;

getchar()

;return0;

}

至於你能不能拿來用,就得看緣分啦 。

通過列舉獲得控制台程序號,結束程序

我用enumprocesses aprocesses,sizeof aprocesses cbneeded 得到所有執行當中的程序的id 然後逐一檢查processname 如果processname是我要找的 pig.exe 則得到它的控制代碼hprocess id應該沒有錯 控制代碼是這樣得到 ...

C 處理控制台關閉事件

我們開發的控制台應用,在執行階段很有可能被使用者ctrl c終止或是被使用者直接關閉。如果我們不希望使用者通過ctrl c終止我們的程式,就需要對ctrl c或關閉事件作處理。在.net平台下console類有個cancelkeypress事件可以處理ctrl c,不過對於直接關閉控制台應用,這種處...

C 控制台實現關閉前的操作,並使關閉按鈕無法使用

c 控制台實現關閉前的操作,並使關閉按鈕無法使用 收藏 控制台的按鈕真不好控制,最近的乙個專案中,要對關閉控制台前對快取資料進行資料庫寫入,所以就有了這麼乙個情境,實現的 如下 view plain copy to clipboard print 10 20 30 40 50 60 70 80 90...