【问题标题】:Installing a driver using Inno Setup使用 Inno Setup 安装驱动程序
【发布时间】:2010-08-19 13:06:47
【问题描述】:

我正在Inno Setup 中为我的应用程序创建设置,将来某个时候我可能需要安装驱动程序。不过,我现在需要知道一些关于在Inno Setup 中安装驱动程序的提示,以便在需要时轻松将驱动程序添加到设置中。


  1. 我应该强制用户只将程序安装到C:\Program Files\<app>\,还是没关系,我应该让他甚至在network drive上安装它?

  2. 我应该在C:\Windows\ 中安装驱动程序,以使其随时可用(即使没有网络驱动器),还是也无所谓?

  3. 是否可以按需启动驱动程序?我想发布我的程序的新版本,我需要创建设置因此它不需要重新启动updating my app 之后。那么是否可以关闭驱动程序,用新版本覆盖它,然后再次打开(就像使用服务一样)而不重新启动 Windows?

  4. 是否可以如此轻松地覆盖驱动程序(如问题3中提到的),还是建议始终完全uninstall the program, and then again install新版本?

    李>
  5. 能否请您提供一些关于安装/卸载/更新驱动程序您认为重要的其他提示?我确定我错过了一些重要的点。


我没有太多的驾驶经验和知识,所以对于有些令人困惑的问题,我深表歉意。

它可能是什么类型的驱动程序可能很重要,所以有一个相关的问题,应该回答这个问题: Low level mouse hook and DirectX

驱动程序开发资源

我发现了一些有关驱动程序开发的有用链接。以此作为参考。

CodeProject 的驱动程序开发 - Part 1Part 2Part 3Part 4Part 5Part 6
http://www.catch22.net/tuts/kernel1.asp Introduction to Device Drivers
Windows Driver Development Tutorial

【问题讨论】:

    标签: windows installation driver inno-setup


    【解决方案1】:

    请不要这样做,在所有 HID 设备上安装上层过滤器驱动程序是一个非常糟糕的主意。话虽如此,我还是会回答你的问题。

    1. 当您安装驱动程序时,Windows 会管理驱动程序本身的放置位置(在 DriverStore 中),您不必担心这一点。

    2. 参见#1

    3. 对于某些驱动程序,是的。对于 HID 以上的过滤器驱动程序,没有。您必须强制移除系统上的所有鼠标和键盘并重新添加它们(这在 PS/2 设备上是不可能的)。

    4. 是的,更新驱动程序相当容易,因为您的版本正确且需要重新启动。

    再一次,虽然我不想气馁,但这样做只会让自己陷入一个受伤的世界。

    【讨论】:

    • 谢谢。然而,你有什么建议?我应该如何完成系统范围的鼠标输入过滤? LowLevelMouseHook 显然不过滤 WPF 应用程序。还有其他方法吗?
    • 我建议不要过滤鼠标输入。您的总体情况是什么?
    • 我不必过滤所有输入,只过滤某些点击。这个场景有些复杂,需要很多行来解释。我只需要过滤一些点击,所以也许有一些很好的解决方法可以让它即使在 WPF 中也能工作,而不需要使用一些讨厌的自定义驱动程序。也许光标下的 1px 窗口会捕获所有点击,我会决定是否让点击通过。但是没有点击过滤是无法完成申请的。
    • 我有系统范围的鼠标过滤问题here,所以如果你有任何想法,请在那里发布,因为我可以给你赏金。