【发布时间】:2012-11-21 19:46:06
【问题描述】:
我有一个 C Legacy 应用程序,这个应用程序会随着时间的推移打开和关闭窗口(它是一个服务器应用程序)。
在同一台机器上,我正在运行一个 C# winforms 应用程序。
这是我的目标: 我的 C# 应用程序向我的 C 应用程序发送一条 win32 消息。 C 应用程序打开窗口。我希望新打开的 C 窗口出现在我的 C# 应用程序前面。
目前的流程如下:
- C#向C发送win32消息
- C 接收并打开新窗口
- C 试图让自己前进
- (此时我想知道 C# 是否应该告诉 C '把你自己带到我面前')
edit 除了让 C 窗口以某种方式出现在前面的部分之外,我已经完成了所有工作。我目前向 C 应用程序发送消息,它会打开新窗口(在同一 .exe 的所有其他窗口前面),但在我的 C# 应用程序下。
我尝试过使用
[DllImport("user32.dll")]
static extern bool AllowSetForegroundWindow(ServerWindowHandle);
但是没有运气。我是否需要让我的 C 应用程序拥有我的 .net 应用程序的“所有权”? C# 应用程序正在通过 programinvoke 启动。
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
很不清楚。谁在调用 SetForegroundWindow?
-
添加编辑希望能解释一下。
-
要了解这个问题,请阅读文档备注部分至
SetForegroundWindow:msdn.microsoft.com/en-gb/library/windows/desktop/… -
@DavidHeffernan 它符合标准 1。我的应用程序目前处于前台。我正在积极尝试推进不同的流程。
标签: c# windows winforms winapi