C\C++控制檯程式隱藏方法總結
學習計算機,往往先從Windows環境下學習程式設計,學習程式設計,往往從C學起,學習C,往往又從控制檯程式學習,何為控制檯,就是那個黑框白字的介面。對於這樣一個最初認為奇陋無比而現在認為無所不能的程式設計平臺,有時候需要將介面隱藏起來。那麼如何做呢?
方法1:
在標頭檔案下加上一句預處理命令:
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 設定入口地址
完整程式為:
- #include<windows.h>
- #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 設定入口地址
- int main()
- {
- MessageBox(NULL,"Hello","Notice",NULL);
- return 0;
- }
在編譯器下執行時仍會出現黑框,但直接執行編譯好的exe程式就不會顯示黑框了,截圖分別如下:
方法2:
使用API函式隱藏自身視窗,但會有黑框快速閃過的痕跡。程式碼如下:
- #include<windows.h>
- int main()
- {
- HWND hwnd;
- hwnd=FindWindow("ConsoleWindowClass",NULL); //處理頂級視窗的類名和視窗名稱匹配指定的字串,不搜尋子視窗。
- if(hwnd)
- {
- ShowWindow(hwnd,SW_HIDE); //設定指定視窗的顯示狀態
- }
- MessageBox(NULL,"Hello","Notice",MB_OK);
- system("pause");
- return 0;
- }
執行效果:在編譯器下執行和直接執行exe檔案,都會有黑屏閃爍一下。
方法3:
一個人自身的力量畢竟有限,所有有時候需要藉助外力,自己辦不到的可以讓好朋友幫忙,程式也同樣如此,內部實現不了的功能可以讓外部程式幫自己實現。
再用C\C++寫一個載入程式,讓載入程式隱藏呼叫該程式。假設要隱藏執行記事本程式,程式碼如下:
- #include<windows.h>
- int main()
- {
- WinExec("notepad.exe",SW_HIDE); //隱藏執行其他程式
- return 0;
- }
執行效果:完全隱藏方法4:
既然思路以及不再侷限到程式自身,那麼其實就有了很多很多中外部隱藏呼叫的方法,只要你的知識面足夠寬那麼解決方法就會足夠多。比如,C#、Java、Python、Ruby、VB、Delphi等等都可以。最後再用VBScript寫一個吧。程式碼如下:
- set objShell=wscript.createObject("wscript.shell")
- iReturn=objShell.Run("你的程式.exe", 0, FALSE)
-
- 'Run()
- '第一個引數是你要執行的程式的路徑,
- '第二個引數是視窗的形式,0後臺執行;1正常執行;2最小化;3最大化;預設的話表示正常執行
- '第三個引數是表示這個指令碼是等待還是繼續執行,如果設為了True,指令碼就會等待呼叫的程式退出後再向後執行。
執行效果:完全隱藏
相關文章
- [C++]常用的windows控制檯操作C++Windows
- c++繼承,隱藏(重定義)C++繼承
- c++控制檯寫一個計時器C++
- 關閉(隱藏)控制檯上顯示的檔案路徑
- C++之過載覆蓋和隱藏C++
- C++程式設計_簡易計時器(Timer)的控制檯實現C++程式設計
- C++ WinExec system 隱藏黑框;清空檔案C++
- 【C++】 C++知識點總結C++
- C++ const 總結C++
- C++:字串總結C++字串
- C++實現控制檯學生學籍管理系統C++
- C/C++指標總結C++指標
- 高質量C/C++程式設計指南總結(八)—— C++高階特性C++程式設計
- 動態控制C4C UI元素的顯示和隱藏UI
- C++基礎總結C++
- C++除錯總結C++除錯
- c++學習總結C++
- C++日期和時間程式設計總結C++程式設計
- CSS隱藏元素方法CSS
- jQuery控制div顯示和隱藏程式碼例項jQuery
- Three.js控制物體顯示與隱藏的方法JS
- C++設計模式 - 總結C++設計模式
- Gdi+列舉系統字型(忽略隱藏字型)C++原始碼C++原始碼
- GridView繫結資料與隱藏指定控制元件(模板列)View控制元件
- C++基礎簡單總結C++
- c++函式學習總結C++函式
- C++中list的使用方法及常用list操作總結C++
- c2隱藏&流量加密加密
- c# 控制檯console進度條C#
- 高質量C/C++程式設計指南總結(二)—— 檔案版式C++程式設計
- 高質量C/C++程式設計指南總結(三)—— 命名規則C++程式設計
- C/C++ 程式反除錯的方法C++除錯
- 全面總結: Golang 呼叫 C/C++,例子式教程GolangC++
- C++函式修飾符總結C++函式
- C++ 序列操作函式最全總結C++函式
- 【CSS】CSS 世界 — 元素的顯示與隱藏學習總結CSS
- 有趣的控制檯玩法:一行程式碼繪製控制檯影像!行程
- 隱藏IP地址的三種方法