2011-02-03 219 views
0

我創建了一個Win32控制檯應用程序,並隱藏了cmd窗口。所以如果我的應用程序正在運行,只能通過正在運行的進程才能看到它。如果有辦法,我想用以下方式修改我的應用程序: 如果我定義了一個參數,它應該顯示cmd窗口,但是如果我不使用此參數,那麼它應該運行而不顯示cmd窗口。如何隱藏/顯示cmd窗口?

我已經停用顯示cmd窗口下面的方法:

#pragma comment(linker, "/SUBSYSTEM:WINDOWS") 

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 
{ 
... 
... 
... 
} 

有沒有人一個想法如何做到這一點?

kampi

回答

1

的lpCmdLine參數WinMain中,您可以訪問命令行程序。您可以簡單地閱讀它的值,然後根據其值進行適當的操作。

編輯:在Windows中顯示控制檯的實際機制有點棘手。您必須創建控制檯,然後重定向標準輸出流才能寫入。關於這個here有一個很好的討論,它詳細說明了這個工作原理以及完成工作所需的代碼。

希望這會有所幫助!

+0

嗨!好吧,我讀了值,但我如何啓用/顯示窗口?你能幫我一下嗎? – kampi 2011-02-03 10:04:32

+0

@ Kampi-道歉;我以爲你被命令行閱讀絆倒了,而不是控制檯。我已經編輯了我的答案,詳細介紹瞭如何做到這一點。我希望它很有用! – templatetypedef 2011-02-03 10:12:16

0

由於您在其他答案的評論中說過,您可以很好地管理命令行參數部分,下面是可以幫助您的其他部分。我希望你需要隱藏控制檯窗口,對吧?

無論如何,請嘗試以下(未經測試):

ShowWindow(GetConsoleWindowHandle(),SW_HIDE);