gpt4 book ai didi

c - 作为父进程运行子进程

转载 作者:太空宇宙 更新时间:2023-11-04 03:11:01 25 4
gpt4 key购买 nike

是否可以将子进程作为父进程运行?

我的目录结构是这样的:

  • 应用程序/程序.exe
    • app/bin/internal.exe
    • app/bin/something.dll

program.exe 只是执行带有一些参数的 internal.exe

#include <stdio.h> 
#include <process.h>

int main(void) {
_execl(".\\bin\\internal.exe",
"internal.exe", "some args", NULL);

return 0;
}

参数很重要;没有它们,internal.exe 将不会执行任何操作。

这大部分工作正常,但不能很好地与任务栏集成。该程序在任务栏中显示为 internal.exe,将其固定到任务栏没有用,因为单击固定的快捷方式将执行 internal.exe 而无需参数,它会立即关闭。

我希望它在任务栏上显示为 program.exe,这样将它固定到任务栏就固定了工作“启动器”而不是内部部分。

这可能吗?

最佳答案

在实际过程中,你不能改变 child 成为 parent 。任务栏在更高级别工作,为您提供更多控制权。

MSDN says :

The following items describe common scenarios that require an explicit AppUserModelID. They also point out cases where multiple explicit AppUserModelIDs should be used.

...

Cooperative or chained processes that to the user are part of the same application should have the same AppUserModelID applied to each process. Examples include games with a launcher process (chained) and Microsoft Windows Media Player, which has a first-run/setup experience running in one process and the main application running in another process (cooperative).

如果您不是子应用程序的作者,事情就会变得复杂。

如果它是 Java 或其他类型的框架,它应该设置 IsHostApp 值。如果没有,你可以尝试玩UseExecutableForTaskbarGroupIcon and TaskbarGroupIcon但这些不会更改 AppUserModelID。设置 NoStartPage 将阻止用户固定子应用程序。

如果您知道如何找到子应用程序的窗口,您可以调用 SHGetPropertyStoreForWindow在父级中并将 id 设置为相同的 id as your parent process和/或设置 System.AppUserModel.Relaunch* 属性。

关于c - 作为父进程运行子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56401165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com