制作后台服务有点像Apple在VIsual Studio C中的焦点#

时间:2009-11-11 17:44:37

标签: c# windows-services keyboard-shortcuts keylistener interactive

我即将开始处理在后台运行的应用程序,等待某些用户输入,就像苹果的聚光灯一样。

基本上,用户将为服务提供一个特定的组合键,将其提升(即 CTRL + Space CTRL + p )将启动应用程序主GUI。

现在我的问题:

  • 首先,我希望这个应用程序的占用空间非常小,不会占用很多系统资源,也不会干扰其他应用程序的运行。

    我也想在C#中写这个应用程序。到目前为止,我所拥有的最好的想法是编写一个服务来监听关键笔划并丢弃不是控件或跟随控件键的笔划。

    这似乎不是最佳的有更好的方法,任何人都知道聚光灯是如何工作的?

  • 其次,我担心这种服务可能被识别为商城商品。

    我可以采取哪些措施来确保我的软件不会被Avast和Spysweeper等应用程序作为目标?

    我是否需要联系这些软件包的所有制造商并解释我的申请目的?

  • 最后,如果有人可以链接到有关如何设置此类服务的资源,我将非常感激。

2 个答案:

答案 0 :(得分:2)

服务不应该与桌面用户交互,因此它们不应该能够挂钩并观察击键。这可能适用于XP,但在Vista / 7和更高版本的OS上你可能会遇到很多问题。

您确实需要一个在用户启动时运行的用户空间程序,以与登录用户相同的用户身份运行。

此外,如果您担心最小的占用空间和资源使用,您不希望使用.NET,因为它需要加载相当大的运行时库并创建一个相当大的工作集。通常这不是一个问题,但对于像观察者程序这样的东西,最好使用低脚本最小CRT启动以低占用率C写它。

答案 1 :(得分:0)

我的建议是创建一个winforms应用程序,使用NotificationIcon将系统托盘图标添加到应用程序的主窗体。然后隐藏主窗体。应用程序可以接收键击,特别是如果您将FormsPreview属性设置为true。您可能还需要挂钩到windows api按键事件。

您应该安全地使用恶意软件扫描程序。

您可能需要查看此链接以设置系统托盘/获胜表单应用。

How can I make a .NET Windows Forms application that only runs in the System Tray?