我有一个想在后台启动的程序,当我想稍后查看它时,可以单击快捷链接或可执行文件并让它调出我的应用程序。我已经让它在 Windows Mobile 模拟器中工作,但是当我在设备上实际尝试它时,应用程序最小化但我无法将其恢复,除非我转到内置任务管理器程序并单击切换到。模拟器和设备都运行 WM 6.1.4。即使使用最小化控制框(“X”)进行智能最小化也会最小化应用程序,但是当我单击 .exe 文件时,我无法恢复我的应用程序。
有什么想法吗?感谢帮助!
编辑:好的,所以我可能遗漏了一些关键信息。这是一个多线程程序。当我不启动线程而只是让主 UI 线程运行时,程序最小化并恢复得很好。一旦我启动需要运行的后台线程,程序就会最小化,但不会恢复。在这种情况下,我是否需要使用 SW_MINIMIZE 以外的东西?
这是我最小化程序的代码:
private void HideForm()
{
if (this.InvokeRequired)
{
HideFormCallback del = new HideFormCallback(HideForm);
this.Invoke(del);
}
else
ShowWindow(this.Handle, SW_MINIMIZE);
}
private const int SW_MINIMIZE = 6;
[DllImport("coredll.dll")]
private static extern bool ShowWindow(IntPtr wHnd, int cmdShow);