/* 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