我有一个 C Legacy 应用程序,这个应用程序随着时间的推移打开和关闭窗口(它是一个服务器应用程序)。
在同一台机器上,我正在运行一个 C# winforms 应用程序。
这是我的目标:我的 C# 应用程序向我的 C 应用程序发送 win32 消息。C 应用程序打开窗口。我希望新打开的 C 窗口显示在我的 C# 应用程序前面。
目前流程如下:
- C# 向 C 发送 win32 消息
- C 接收,并打开新窗口
- C试图让自己前进
- (此时我想知道 C# 是否应该告诉 C '把自己带到我面前')
编辑我已经完成了一切,除了我让 C 窗口以某种方式出现在前面的部分。我目前向 C 应用程序发送消息,它会打开新窗口(在同一 .exe 的所有其他窗口前面),但在我的 C# 应用程序下。
我试过使用
[DllImport("user32.dll")]
static extern bool AllowSetForegroundWindow(ServerWindowHandle);
但没有运气。我是否需要让我的 C 应用程序拥有我的 .net 应用程序的“所有权”?C# 应用程序正在通过 programinvoke 启动。