在Windows Startup上启动C#应用程序并保持焦点

时间:2011-07-26 18:47:19

标签: c# windows startup

我正在开发一个简单的程序,可以读取卡片或条形码并将其记录在数据库中。之前,我在Visual Basic中开发了相同的应用程序并且工作得很好,但是由于我们的服务器上有很多变化,我们决定用C#开发这个应用程序。

我可以让我的应用程序开始使用Windows将其快捷方式放在开始菜单的“启动”上,但问题是它没有获得焦点,因此可以读取卡和条形码,这样我的程序就没用了。我们使用的机器运行的是Windows XP和Windows 7。

如何在Windows Startup上启动我的应用程序并将重点放在其中的最佳方法是什么?

3 个答案:

答案 0 :(得分:3)

一般来说,这是一个非常糟糕的设计。我刚刚完成了一个涉及条形码阅读器的项目,并将它们设置为串行端口,而不是键盘。您应该检查这是否是您硬件的选项,因为最终结果将更加可靠。

话虽这么说,您可以在表单中创建一个执行this.Focus()this.BringToFront()来锁定焦点的计时器。请注意,默认情况下,这只会导致任务栏闪烁。您需要使用TweakUI来启用焦点窃取。

在SO上讨论了另一个选项here。实际上非常相似的问题。基本上,您将键盘输入挂钩到较低的水平。

答案 1 :(得分:0)

请尝试寻找其他方法,监控系统事件或使用轮询机制。

应该避免窃取焦点,read this to understand why

如果每次输入密码时都有一美元,请在错误的应用程序中使用明文,因为它会偷走焦点......

答案 2 :(得分:0)

On Form Activated Event call This.SentToBack()