【发布时间】:2011-09-08 20:42:35
【问题描述】:
我的 Windows 窗体应用程序启动另一个;后者旨在保持隐藏状态,并在用户按下 F9 键时出现和消失。
我需要隐藏表单在另一个进程中运行,所以我使用Process.Start。但是,无论我做什么,我都无法让表单开始隐藏。它总是出现在左下角,奇怪的是,它只显示标题栏,我可以从中最大化它。这是不希望的。
我尝试用ShellExecute = false、CreateNoWindow = true、WindowStyle = ProcessWindowStyleHidden 调整StartInfo,你说的。
我还尝试去表单的设计器并将 ShowInTaskbar 设置为 false,但没有雪茄。尝试时引起我注意的一件事是 WindowState 属性只能设置为正常、最小化或最大化,而不是隐藏。
我被难住了。有什么建议么? (除了放弃 Windows 窗体;这是遗留代码)
编辑:(非常重要)我忘了说我的主应用是全屏的,并且 Windows 桌面是锁定的。也就是说,当机器启动时,我的主应用程序启动而不是资源管理器
【问题讨论】:
-
如果隐藏表单是您自己的代码库的一部分(一项任务,但必须异步运行的单独进程),我们可以帮助您编写异步代码,这样您就不需要单独的进程.另外请注意,WinForms 现在已经过时了,但无论如何它绝对不是遗产。这是绝对要求这是它自己的 AppDomain 中的一个单独进程吗?
-
是的,先生,它绝对是一个单独的应用程序。不了解 AppDomains,也许我应该使用它而不是
Process.Start()?怎么样? -
这只能在您启动的应用程序内完成,而不是从您的外壳替换中完成。目前尚不清楚这是否适合您的问题。