cmd.exe仅在Windows 8的顶部窗口后面启动我的WPF窗口

时间:2014-03-17 10:01:28

标签: c# wpf windows-8 cmd

我的WPF应用程序是通过cmd文件启动的。 cmd文件执行多个步骤:

  1. 初始化一些变量
  2. 启动外部cmd文件以初始化数据库(使用START myfile.cmd)
  3. 启动我的Wpf应用程序(使用START myWPFApp.exe)
  4. 在Windows 7上一切正常。但是,当我在Windows 8计算机上运行完全相同的代码时,WPF窗口显示在顶部窗口的后面。这是一个问题,因为如果用户打开了全屏窗口,他将不会注意到应用程序已启动(任务栏中的图标除外)

    这是我的(简化)代码: Run.cmd

    timeout 1
    START StartDatabase.cmd
    START SimpleWPFWindow.exe
    

    StartDatabase.cmd

    exit
    

    SimpleWPFWindow.exe

    Use any WPF Application here (e.g. WPF Application Template with empty Window)
    

    到目前为止我的发现:

    • 当我删除Run.cmd中的第一行(模拟某些逻辑的超时)时,应用程序正确启动
    • 当我从cmd文件中删除外部呼叫(上面的第2项)时,应用程序正确启动
    • 以编程方式将窗口拉到我的代码的前面不是一个选项,因为我使用启动画面并且同样的问题适用于启动画面(=它显示在顶部窗口后面)
    • 对窗口使用TopMost = true不起作用,因为如果出现启动问题,应用程序会显示一条错误消息,如果最顶层为真,则会显示错误消息。

    有人可以向我解释为什么Win7与Win8存在这种差异? 我该怎么做才能避免这个问题?

    非常感谢任何意见!

1 个答案:

答案 0 :(得分:0)

如果您不需要显示其中一个窗口,则可以在最小模式下启动,或者根本不显示start /min ...start /b ...