2011-07-26 36 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()

相關問題