/* CreateProcess initialization */
STARTUPINFO si;
PROCESS_INFORMATION pi;
memset(&si, 0, sizeof(si));
memset(&pi, 0, sizeof(pi));
si.cb = sizeof(si);
long ret;
// si.wShowWindow = SW_HIDE;
// hide process window.... // run in background..
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
if (!CreateProcess(0, exe,
0, 0, 1, NORMAL_PRIORITY_CLASS, 0, 0, &si, &pi)) {
return;
}
//int prez = WaitForSingleObject(pi.hProcess, INFINITE);
//CloseHandle(pi.hProcess);
0
A
回答
0
新進程的創建者並不是你將新進程註冊到任務欄中。這是一個創建頂層窗口的新過程,用於決定是否在任務欄中。這個決定是基於該頂級窗口的擴展風格,這是由新進程決定的。
換句話說,爲了做到這一點,您必須在這個其他過程的頂層窗口中捅一下。
5
你可以嘗試設置你的STARTUPINFO
結構STARTF_USESHOWWINDOW
的dwFlags
部件和wShowWindow
成員SW_HIDE
。
這將使CreateProcess()
通0作爲WinMain
的nCmdShow
參數。但是,並非所有的Windows應用程序都表現良好,並且在初始調用ShowWindow()
時使用此值。
0
您可以找到與啓動的進程相關聯的窗口(請參閱FindWindow
和EnumWindows
),並使用SW_HIDE
調用ShowWindow
函數。或者,您可以通過刪除WS_EX_APPWINDOW
並添加WS_EX_TOOLWINDOW
來修改窗口的擴展樣式。
最簡單的方法仍然是按照第一個答案中所述使用STARTUPINFO,如果啓動的進程遵守設置。
相關問題
- 1. 使用'CreateProcess'隱藏進程窗口
- 2. 如何在通過CreateProcess創建的進程上創建窗口
- 3. 隱藏進程窗口
- 4. 從任務欄隱藏窗口
- 5. 任務欄進度條在隱藏窗口後不顯示
- 6. 從任務管理器隱藏進程
- 7. 刪除/ 100%隱藏WinXP任務欄
- 8. 從任務欄隱藏應用程序
- 9. 如何顯示由createprocess函數隱藏的控制檯應用程序窗口
- 10. 創建隱藏進程(窗口不可見)
- 11. 從MS窗口任務欄隱藏窗口
- 12. Captionless wxPython的窗口隱藏任務欄
- 13. 通過進程隱藏多個窗口
- 14. 激活隱藏進程的窗口
- 15. 如何在C#控制檯中隱藏任務欄窗口
- 16. 從進程列表中隱藏進程
- 17. 如何在C#中的任務管理器中隱藏進程?
- 18. 如何隱藏應用程序窗口,當它的EXE從進程調用?
- 19. 在遠程進程中隱藏控制檯窗口
- 20. C#隱藏進程(進程不隱藏)
- 21. 德爾福:進程創建旗幟在CreateProcess函數
- 22. 如何隱藏窗口,但在任務欄上顯示?
- 23. 如何用可可隱藏UIAgent進程的窗口
- 24. 從任務欄隱藏窗體2
- 25. VBScript - 創建並在一個隱藏的窗口中殺死一個進程?
- 26. 如何從任務欄(XE4)隱藏firemonkey應用程序按鈕?
- 27. 如何從任務欄隱藏Flex AIR應用程序?
- 28. 使用隱藏所有窗口的子進程啓動程序
- 29. 隱藏進程監視器應用程序窗口
- 30. 如何隱藏Windows CE任務欄並以全屏顯示程序窗口?
WS_EX_APPWINDOW對於在任務欄中可見的窗口是不需要的,具有基本鑲邊(標題,邊框等)的可見頂層非工具欄窗口即使沒有該樣式也會獲得任務欄按鈕... – Anders 2011-01-21 14:45:31
@Anders謝謝爲了澄清。我的答案的主要意義仍然正確,但是,你不說? – 2011-01-21 15:45:39