【问题标题】:Call my application through keyword通过关键字调用我的应用程序
【发布时间】:2009-06-18 14:46:36
【问题描述】:

我的问题很简单,但实现起来可能很难!

我希望每当用户使用某些组合键(在他的键盘上)时启动我的应用程序(Windows Application:: Visual C# .net)。

例如,它键入 Ctrl+W+W 并启动我的应用程序,仅此而已,我想要最简单的实现,更少的代码,记忆……

谢谢:D

【问题讨论】:

  • 让我们看看,尽可能少的内存,应用程序在用户键入时打开,这可能是意外行为。对我来说听起来像间谍软件。
  • 如果是间谍软件,他为什么要为其指定特定的快捷方式代码?他肯定只是希望它在启动时运行?
  • 它可以是字典或输入法,或联系人管理器,或类似的东西。
  • 编写一个与用户桌面交互的服务可能不是最好的解决方案;与服务相比,最好有一个小的隐藏应用程序,它会在交互式用户登录时自动启动:msdn.microsoft.com/en-us/library/aa376977(VS.85).aspx

标签: keyboard key


【解决方案1】:

您需要结合您的应用程序编写一个键盘记录器类型的应用程序来监控键盘事件。一旦触发了您的特定快捷方式,您就可以加载您的应用程序。

有关如何捕获击键的信息,请参阅here

【讨论】:

  • 我很想知道为什么有人反对我这个答案的原因,这是你需要做的!
  • 我并不是在建议实际创建一个键盘记录器......关键字是“键盘记录器类型应用程序”
  • 你的建议很有趣,我 +1 了...这可能就是答案!
【解决方案2】:

创建应用程序的快捷方式,并为快捷方式分配热键组合。根据操作系统,并非每个按键组合都可以分配给快捷方式,例如您可以指定 Ctrl+Alt+W 但不能指定 Ctrl+W+W。

【讨论】:

  • 那个解决方案!我记得我将它用于一些 ms-dos 应用程序;虽然它有效,但在我看来它并不健壮和保证
【解决方案3】:

在 Windows 上,您可以创建应用程序的快捷方式(在桌面上)。

当您打开快捷方式的属性时,在第二个选项卡(标记为“快捷方式”)上,您可以分配一个快捷方式键。但是您只能使用 Ctrl+Alt+快捷键。

【讨论】:

    【解决方案4】:

    我认为您提出这个问题的方式是不可能的。然而,有可能的是让您的应用程序在启动时自动运行而不显示任何表单,让它连接到 Windows 以监视所有击键(我不确定如何执行该部分,确切地说),然后在启动时显示一个表单用户按下特定的按键序列。

    因此,换句话说,您的应用程序必须从 Windows 启动时开始运行,但仅在用户单击特定键序列时才显示自己(使表单可见)。

    更新:这里是讨论如何使用 C# 进行全局击键捕获的文章的链接:http://blogs.msdn.com/toub/archive/2006/05/03/589423.aspx

    【讨论】:

    • 这是故事中最难的部分,我想知道 Windows 是否有监视“击键”的服务,因为全时运行我的应用程序是浪费内存,尤其是用户需要它几次!跨度>
    • 您可以编写自己的 Windows 服务来为您执行此操作。
    • 您可以编写应用程序,使其在需要实际显示表单之前完全不占用太多内存(将除核心应用程序之外的所有内容放在单独的 DLL 中)。无论如何,Windows 已经有很多垃圾在运行。
    • @James:这基本上就是我在这里提出的。他的应用程序将是一个 Windows 服务,如果用户输入某些按键,它会弹出一个表单。
    • @windows服务理念和像服务器一样等待用户输入的小程序是个好主意,我已经了解了windows服务
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 2010-09-13
    相关资源
    最近更新 更多