C\C++控制檯程序隱藏方法總結

        學習計算機,每每先從Windows環境下學習編程,學習編程,每每從C學起,學習C,每每又從控制檯程序學習,何爲控制檯,就是那個黑框白字的界面。對於這樣一個最初認爲奇陋無比而如今認爲無所不能的編程平臺,有時候須要將界面隱藏起來。那麼如何作呢?html


方法1:

        在頭文件下加上一句預處理命令:web

 
 
 
 
 
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 設置入口地址
完整程序爲:

 
 
 
 
 
  1. #include<windows.h>
  2. #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 設置入口地址
  3. int main()
  4. {
  5. MessageBox( NULL, "Hello", "Notice", NULL);
  6. return 0;
  7. }

在編譯器下運行時仍會出現黑框,但直接運行編譯好的exe程序就不會顯示黑框了,截圖分別以下:


方法2:

        使用API函數隱藏自身窗口,但會有黑框快速閃過的痕跡。代碼以下:shell

 
 
 
 
 
  1. #include<windows.h>
  2. int main()
  3. {
  4. HWND hwnd;
  5. hwnd=FindWindow( "ConsoleWindowClass", NULL); //處理頂級窗口的類名和窗口名稱匹配指定的字符串,不搜索子窗口。
  6. if(hwnd)
  7. {
  8. ShowWindow(hwnd,SW_HIDE); //設置指定窗口的顯示狀態
  9. }
  10. MessageBox( NULL, "Hello", "Notice",MB_OK);
  11. system( "pause");
  12. return 0;
  13. }

        運行效果:在編譯器下運行和直接運行exe文件,都會有黑屏閃爍一下。


方法3:

        一我的自身的力量畢竟有限,全部有時候須要藉助外力,本身辦不到的可讓好朋友幫忙,程序也一樣如此,內部實現不了的功能可讓外部程序幫本身實現。編程

       再用C\C++寫一個引導程序,讓引導程序隱藏調用該程序。假設要隱藏運行記事本程序,代碼以下:windows

 
 
 
 
 
  1. #include<windows.h>
  2. int main()
  3. {
  4. WinExec( "notepad.exe",SW_HIDE); //隱藏執行其餘程序
  5. return 0;
  6. }
運行效果:徹底隱藏

方法4:

        既然思路以及再也不侷限到程序自身,那麼其實就有了不少不少中外部隱藏調用的方法,只要你的知識面足夠寬那麼解決方法就會足夠多。好比,C#、Java、Python、Ruby、VB、Delphi等等均可以。最後再用VBScript寫一個吧。代碼以下:

 
 
 
 
 
  1. set objShell=wscript.createObject( "wscript.shell")
  2. iReturn=objShell.Run( "你的程序.exe", 0, FALSE)
  3. 'Run()
  4. '第一個參數是你要執行的程序的路徑,
  5. '第二個參數是窗口的形式,0後臺運行;1正常運行;2最小化;3最大化;缺省的話表示正常運行
  6. '第三個參數是表示這個腳本是等待仍是繼續執行,若是設爲了True,腳本就會等待調用的程序退出後再向後執行。
運行效果:徹底隱藏
相關文章
相關標籤/搜索