2011-07-26 22 views
1

我正在开发一个简单的程序,读取卡或条形码并记录在数据库中。之前,我在Visual Basic中开发了相同的应用程序,并且工作得很好,但由于我们的服务器发生了很多变化,我们决定在C#中开发这个应用程序。在Windows启动时启动C#应用程序,并保持重点

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

如何开始我在Windows启动应用程序,并保持重心在它的最好方法是什么?

+1

请解释为什么应用程序需要保持专注才能正常工作。 –

+0

应用程序需要关注,因为大多数条形码/卡扫描仪都充当键盘。当你扫描某些东西时,无论光标/焦点发生在哪里,解码后的数据都会被输入。 –

+0

这值得一读:http://blogs.msdn.com/b/oldnewthing/archive/2011/03/10/10138969.aspx – n8wrl

回答

3

这一点,在一般情况下,一个非常糟糕的设计。我刚刚完成了一个涉及条形码读取器的项目,并将它们设置为串行端口,而不是键盘。您应该检查这是否是您硬件的选项,因为最终结果会更可靠。这就是说,你可以在你的窗体中创建一个计时器,执行this.Focus()this.BringToFront()来窃取焦点。请注意,默认情况下,这只会导致任务栏闪烁。您需要使用TweakUI才能启用焦点盗取功能。

另一种选择是在SO讨论here。实际上非常类似的问题。基本上,你把键盘输入挂在低位。

0

请试着找到另一种方式,监视系统事件或使用轮询机制。

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

如果我有一块钱我每次输入密码,明文错误的应用程序,因为它偷走了集中时间...

0

在形式被活化事件调用此方法.SentToBack()

相关问题