เริ่มแอปพลิเคชัน C # บน Windows Startup และให้ความสำคัญกับ [ซ้ำกัน]

ฉันกำลังพัฒนาโปรแกรมง่ายๆ ที่อ่านการ์ดหรือบาร์โค้ดและบันทึกลงในฐานข้อมูล ก่อนหน้านี้ ฉันพัฒนาแอปพลิเคชันเดียวกันใน Visual Basic และทำงานได้ดี แต่เนื่องจากเซิร์ฟเวอร์ของเรามีการเปลี่ยนแปลงมากมาย เราจึงตัดสินใจพัฒนาแอปนี้ใน C#

ฉันสามารถให้แอปพลิเคชันของฉันเริ่มต้นด้วย Windows โดยวางทางลัดไว้ที่ 'เริ่มต้น' ของเมนูเริ่ม แต่ปัญหาคือมันไม่ได้รับการโฟกัสเพื่อให้สามารถอ่านการ์ดและบาร์โค้ดได้ และด้วยวิธีนี้โปรแกรมของฉันก็ไร้ประโยชน์ เครื่องที่เราใช้คือ Windows XP และ Windows 7

วิธีที่ดีที่สุดในการเริ่มแอปพลิเคชันของฉันบน Windows Startup และให้ความสำคัญกับแอปพลิเคชันนั้นคืออะไร


person Rafael Cintra    schedule 26.07.2011    source แหล่งที่มา
comment
โปรดอธิบายว่าทำไมแอปพลิเคชันจึงต้องให้ความสำคัญกับการทำงานอย่างถูกต้อง   -  person Emond Erno    schedule 26.07.2011
comment
แอปจำเป็นต้องให้ความสำคัญเนื่องจากเครื่องสแกนบาร์โค้ด/การ์ดส่วนใหญ่ทำหน้าที่เป็นคีย์บอร์ด เมื่อคุณสแกนบางสิ่ง ข้อมูลที่ถอดรหัสจะถูกพิมพ์ทุกที่ที่มีเคอร์เซอร์/โฟกัสอยู่   -  person Tim Coker    schedule 26.07.2011
comment
สิ่งนี้ควรค่าแก่การอ่าน: blogs.msdn.com/ b/oldnewthing/archive/2011/03/10/10138969.aspx   -  person n8wrl    schedule 26.07.2011


คำตอบ (3)


โดยทั่วไปแล้ว นี่คือการออกแบบที่ค่อนข้างแย่ ฉันเพิ่งเสร็จสิ้นโปรเจ็กต์ที่เกี่ยวข้องกับเครื่องอ่านบาร์โค้ด และตั้งค่าให้ทำหน้าที่เป็นพอร์ตอนุกรม แทนที่จะเป็นคีย์บอร์ด คุณควรตรวจสอบว่านี่คือตัวเลือกสำหรับฮาร์ดแวร์ของคุณหรือไม่ เพราะผลลัพธ์ที่ได้จะเชื่อถือได้มากกว่ามาก

ตามที่กล่าวไว้ คุณสามารถสร้างตัวจับเวลาในแบบฟอร์มของคุณที่ดำเนินการ this.Focus() และ this.BringToFront() เพื่อขโมยโฟกัส โปรดทราบว่าตามค่าเริ่มต้น การดำเนินการนี้จะทำให้แถบงานกะพริบเท่านั้น คุณจะต้องใช้ TweakUI เพื่อเปิดใช้งานการขโมยโฟกัส

มีการพูดคุยถึงตัวเลือกอื่นที่นี่เกี่ยวกับ SO คำถามที่คล้ายกันมากจริงๆ โดยพื้นฐานแล้ว คุณจะเชื่อมต่ออินพุตคีย์บอร์ดไว้ที่ระดับต่ำ

person Tim Coker    schedule 26.07.2011


ในแบบฟอร์มเปิดใช้งานเหตุการณ์เรียก This.SentToBack()

person zafar shakeel    schedule 04.09.2013