我们只想在任何时候运行一个应用程序实例.所以在启动时它会查看应用程序是否正在运行,如果是,它会在主窗口上调用SetForegroundWindow.
这一切都很好...... 大部分时间......
当我们的应用程序启动时,它将显示启动画面和登录表单.这两种形式都有ShowInTaskBar = false.
因此,如果您在显示登录表单时尝试启动该应用程序的另一个副本,则该登录表单不会显示在前面!
特别是当用户也无法在任务栏中看到任何内容时,他们认为所有应用程序都是duff并且无法启动.没有迹象表明还有另一个实例在运行.
有没有解决这个问题的方法?
我想在运行时切换进程的可见性,我有一个Windows窗体应用程序,通过一个进程启动默认隐藏的另一个控制台应用程序但我想允许管理员用户通过复选框切换此状态并显示控制台应用程序他们选择.
我有这个,但它不起作用:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
ProcessWindowStyle state = cvarDataServiceProcess.StartInfo.WindowStyle;
if (state == ProcessWindowStyle.Hidden)
cvarDataServiceProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
else if (state == ProcessWindowStyle.Normal)
cvarDataServiceProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
}
Run Code Online (Sandbox Code Playgroud)