【发布时间】:2023-03-29 02:58:01
【问题描述】:
我有一个用 C 语言编写的小程序,它从 windows API 开始。我想创建一些进程并通过 Windows API 在后台运行其中一个,在前台运行另一个。我的代码创建过程:
int createBackgroundProcess(){
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
CreateProcess("exampleFile.exe",NULL,NULL,NULL,FALSE,
CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
WaitForSingleObject(pi.hProcess,10000);//INFINITE
TerminateProcess(pi.hProcess, 0);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
我怎样才能让它进入后台(后台仍然在运行,但我们看不到它)(因为另一个进程将同时运行)
【问题讨论】:
-
“背景”是什么意思?您想从流程中获得什么类型的行为?您是在谈论限制其优先级吗?
-
Windows 没有“后台进程”的概念。任何没有窗口的进程都是漂亮的背景,CREATE_NO_WINDOW 是一个选项。其他选项包括创建服务、使用任务调度程序、在不同的桌面上运行它。
-
@Cody Gray:那里的背景仍在运行,但我们看不到它。
-
@HansPassant:是的,我使用了 create_no_window 并且它正在工作:D
-
您应该将其发布为答案。将来,请在您的问题中包含有关您正在尝试做什么的更多信息。如果我们知道它是一个控制台应用程序,并且您想隐藏控制台窗口,我们可以在几个小时前提供答案,而无需猜测。
标签: c windows process background