【问题标题】:writing fast launcher for windows为 Windows 编写快速启动器
【发布时间】:2012-10-10 01:32:26
【问题描述】:

我正在编写 WPF 应用程序

应用程序针对各种 Windows 和低性能计算机 所以我想为其编写启动器/启动画面,它将在应用程序加载之前显示

我不确定要使用什么语言或什么技术 我希望它非常快速和轻量

你有什么建议吗?

【问题讨论】:

  • 你的意思是像闪屏?
  • 是的,对不起,我称之为启动器这两个不同吗?
  • 我不确定,我不知道你的意思,所以我只是想澄清一下。

标签: windows performance splash-screen launcher


【解决方案1】:

显示一个 Flash 屏幕就像弹出一个对话框一样简单。如果对话框已经包含各种资源,例如位图,那么它非常快。然而,决定这一速度的一个问题是,在应用程序启动时,在点击代码以显示对话框之前初始化了多少其他内容。

因此,一种选择是创建一个非常简单的应用程序,该应用程序只显示 Flash 屏幕,然后启动实际应用程序。一个简单的 Windows 对话框应用程序就可以做到这一点。如果您选择此路线,您将需要弄清楚如何同步实际应用程序完成其初始化和启动应用程序停止。有几种技术可以解决这个问题,最有可能的是使用进程间互斥锁,或者只是寻找要创建的文件。

对于我使用的一个销售点,它是作为打开终端的一部分而启动的,我们遇到了一些问题,即应用程序在一些必需的系统服务(如数据库管理器)启动并运行之前就启动了。

我们发现某些环境需要比其他环境更多的时间,因此注册表变量可以轻松调整现场延迟。

因此,作为应用程序初始化的一部分,我们所做的是,当应用程序启动时,它会显示一个带有进度条的对话框。进度条会向上计数,我们有一个循环,它会进行一秒钟的睡眠,然后增加进度条。

等待的秒数是应用程序的注册表设置,具有默认值。

我们遇到的一个问题是,在调试器中进行开发和测试时,默认值对于想要开始的不耐烦的程序员来说太长了,所以我们有条件编译,如果是调试编译,延迟是设置为几秒钟。否则,默认值为 10 秒。但是可以通过更改注册表值来更改它。

另请参阅Stackoverflow about a launcher

【讨论】:

  • .NET windows 窗体应用程序是否足够快以在速度较慢的机器上快速显示? .NET winform 应用程序在 C++ 中会比在 C# 中更快吗?
  • 我的最小目标是 windows xp service pack 2 和可以运行它的机器
  • 我没有任何关于 .NET 应用程序的性能数据。会有几个变量,包括存储访问时间(磁盘访问、网络或其他)。一般来说,应用程序越小、越独立,加载和运行的速度就越快。我知道 C++ 中的简单 MFC 对话框应用程序很快,所以如果你使用独立启动器会很快。我怀疑使用 .NET 平台会更慢,除非共享的各种 DLL 和组件已经在内存中。
【解决方案2】:

如果你想要一些真正快速和轻量级的东西,C 会很好。

如果你不想学 C,你也可以用 .NET 和 C# 做一个控制台应用程序,它也很快

编辑评论:您可以使用像 SDL 这样的库,它非常快速和强大,并且可以从控制台应用程序中绘制图像。

【讨论】:

  • 我想在应用程序加载之前显示一些东西你建议控制台窗口吗?我知道 C 语言很快,但我应该使用什么技术?直接win api?
  • 使用 SDL 库可以非常轻松地做到这一点,它可以非常快速地显示图像
  • 不确定您的开发 IDE 但是如果它是 Visual Studio,则执行 Windows 启动器应该是创建一个简单的对话框应用程序,该应用程序显示一个对话框,然后启动实际的应用程序。一个简单的对话框应用程序只需通过一系列向导对话框单击几下鼠标。然后添加一个带有其类的 Flash 屏幕对话框,使用 IDE 工具使其漂亮,然后在您的 init 中,您只显示 Flash 对话框,启动应用程序,一旦它运行,关闭 Flash 对话框并退出启动器.
猜你喜欢
  • 2011-04-06
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-04
  • 2012-06-10
相关资源
最近更新 更多