Ms.Access สามารถเข้าถึง Keyboard Buffer ได้หรือไม่
กระทู้เก่าบอร์ด อ.Yeadram

 1,609   6
URL.หัวข้อ / URL
Ms.Access สามารถเข้าถึง Keyboard Buffer ได้หรือไม่

ใน Event หนึ่ง ของ Form ที่มีชื่อว่า Form_Timer   มีคำสั่ง หรือ วิธีการใด ให้ Access ลงไปอ่าน Keyboard ว่า User กด ปุ่มใด ได้ไม่ครับ ตามเวลาที่ตั้งไว้ใน Form (Interval)     เพราะ form นี้จะต้อง Run ร่วมกับโปรแกรมอื่น ๆ ต้องสามารถตรวจสอบการกด Keyboard ได้ แม้ในขณะที่ User กด Keyboard ในโปรแกรมอื่นอยู่ เป็น Project ที่ ผจก. ให้ผมทำ ผมเองก็เขียนอย่างอื่นไม่เป็น นอกจาก Ms.Access ขอบคุณครับ

6 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R15271
พฤติกรรมแบบนี้ถือเป็นการแฮกนะครับ ผจก. คุณรู้หรือไม่ เท่าที่รู้ Keyboard มี Buffer แต่ Buffer ไม่ใช่การจำไว้ตลอดนะครับ เป็นแค่สำรองชั่วคราวเมื่อ CPU ทำงานไม่ทัน แต่เมื่อถ่ายข้อมูลใน Buffer ไปหมดแล้วก็จะล้างทิ้งรอคีย์ต่อไป ไม่ได้จำตลอดเหมือน Clipboard (การ Call API ไม่น่ามีฟังก์ชั่นนี้นะครับ มีแต่ประเภทการล้าง Buffer การทำให้ Buffer เต็ม เป็นทางเทคนิคผมก็ไม่รู้ว่าทำไปทำไม) ดังนั้นแฺฮกเกอร์จึงต้องเขียน Application ที่ฝังตัวในหน่วยความจำของเครื่องแทน แล้วค่อยดักจับการส่งคีย์ หรือไม่ก็ใช้เครื่องทางฮาร์ดแวร์เสียบไว้ระหว่างแจ็คคีย์บอร์ดกับเครื่อง CPU ที่มีข่าวเตือนผู้ที่ใช้บริการร้านเน็ตทั่วไป ดังนั้นคุณคงต้องไปเสนอ ผจก. หาซื้อมาใช้น่าจะดีนะครับ

http://www.isee.in.th/Security/keylogger-risks
2 @R15272
3 @R15273
อื่ม! ผมเขียนประชดนะครับ จริงๆผมไม่แนะนำให้ทำพฤติกรรมแบบนี้นะครับ (เดี๋ยวหาว่าผมแนะนำจะยุ่งไปใหญ่) เพราะมันผิด พรบ.คอมพิวเตอร์ การดักข้อมูลคอมพิวเตอร์โดยมิชอบ (มาตรา 8)
ผู้เสียหายหากไม่ยินยอมสามารถเอาผิดได้นะครับ แม้จะเป็นนายจ้างกับลูกจ้างก็ไม่เกี่ยวครับ
4 @R15274
เข้าใจผิดไปใหญ่แล้วครับ    เรื่องมีอยู่ว่า ที่โรงงานผม มีสายการผลิต อยู่ 4 สายการผลิต เมื่อแต่ละสายการผลิต ผลิตสินค้าได้เต็มพาเลท (Pallet) ก็พิมพ์ใบกำกับสินค้าโดยเครื่องคอมพิวเตอร์ และ เครื่องพิมพ์กลาง 1 ใบออกมาเพื่อนำไปติดที่พาเลทนั้น ๆ    ปัญหามีอยู่ว่า เนื่องจากมีคอมพิวเตอร์เพียงเครื่องเดียว แต่มีคนมากดพิมพ์ 4 คน บางครั้ง ก็กดผิดไปกดให้ สายการผลิตอื่นที่ไม่ใช่ของตนเอง หรือกดล่วงหน้าหลาย ๆ ใบ เพราะขี้เกียจเดินมากดพิมพ์บ่อย ๆ    ผจก, จึงเสนอให้เดินสายคีย์บอร์ด จากเครื่องคอมพิวเตอร์ ไปยังสายการผลิตนั้น ๆ (ไม่ไกลกันมาก) เป็นคีย์บอร์ดแบบ USB    และเมื่อพิมพ์ ก็พิมพ์ผ่านสาย LAN ไปออกที่สายการผลิตนั้น ๆ เลย   ทำให้ตัดปัญหาเรื่องข้างบนที่เล่ามา          แต่มามีปัญหาที่ว่า เมื่อโปรแกรมพิมพ์ใบกำกับ   กำลัง Active อยู่     VBScript ที่เขียนไว้ข้างหลัง เพื่อเปลี่ยน Default Printer โดยการกดปุ่มคีย์บอร์ด จะไม่ทำงาน ทำให้เมื่อพิมพ์ใบกำกับ ก็จะยังคงออกที่เครื่องพิมพ์เครื่องเดียว     จึงเป็นที่มาของคำถามว่า    MS Access สามารถอ่าน Keyboard Buffer ได้หรือไม่   แม้ว่าขณะนั้นโปรแกรมอื่นจะถูกรันอยู่   ทั้งนี้เพื่อให้ Ms Access ช่วยเปลี่ยน Default Printer ให้เท่านั้นเอง ไม่ได้เอาไปเจาะระบบอะไรทั้งนั้น
5 @R15275
ส่วนตัว ถ้าผมเห็นหรือได้ยินคำถามประเภทนี้แล้ว ผมก็ต้องดักไว้ก่อนนะครับ เพราะผมอ่านกี่ที จากคำถามตั้งกระทู้ มันก็คือรูปแบบการแฮกประเภทหนึ่งครับ ลองคิดดูว่าหากผมหรือใครก่อนหน้า มีโค๊ดประเภทนี้แล้วโพสให้ไป ใครที่เข้ามาอ่านแล้วมีเจตนาไม่ดี สามารถใช้สร้างความเสียหายให้กับผู้ได้เลยนะครับ (ร่วมต่อต้านการโกงทุกรูปแบบ)
นี่คือตัวอย่างของการถามเหมือนกันนะครับ หากคุณอธิบายที่มาที่ไปตั้งแต่แรกก็น่าจะดี
ส่วนปัญหาของคุณเท่าที่อ่าน ผมว่ามันไม่อยู่ที่คุณอ่าน Buffer คีย์บอร์ดได้หรือไม่หรอกครับ มันมีอีกหลายประเด็น ซึ่งคุณน่ารู้ดีกว่าคนที่อ่านข้อมูลไม่กี่บรรทัดอย่างผมนะครับ เช่น
- หากเครื่องพิมพ์คุณทำงานอยู่จะถูกกำหนดไม่ให้ ขัดจังหวะ (interrupt) หรือเปล่าครับ หากเป็นอย่างนั้น ต่อให้คุณอ่านค่า Buffer มาได้คุณก็กำหนดมันไม่ได้อยู่ดี
- คุณรู้ได้อย่างไรครับว่า VBScript ที่เขียนไว้อยู่ที่ Buffer คีย์บอร์ด เพราะโค๊ดที่เขียนไว้แล้วมันอาจถูกส่งที่หน่วยความจำของตัวโปรแกรมต่างหากครับ (ตัวอย่างเหมือนเรากำลังพิมพ์บนเว็บเพจ สิ่งที่เราพิมพ์ก็ถูกเก็บอยู่ในส่วนของหน่วยความจำของระบบหรือโปรแกรม ไม่ใช่ Buffer คีย์บอร์ด Buffer มีน่าที่รับมาให้ครบบิต แล้วจ่ายไป ไม่ใช่ไว้จำ ค่าทีได้จะเป็นไบนารี่)
- การสั่งพิมพ์ไม่จำเป็นต้องกำหนดเครื่องนั้นเป็น Default เลือกเครื่องอื่นก็สั่งพิมพ์ได้
ลองคิดดูใหม่ครับว่าควรแก้ปัญหาอย่างไร ปัญหาของคุณอาจไม่ได้แก้ด้วยการใช้ซอฟแวร์เพียงอย่างเดียวก็ได้
6 @R15277
อ่านแล้วยังงงๆ สิ่งที่ต้องการคือ 1 คอมฯต่อสายคีย์บอร์ด USB 4 ตัว เมื่อผู้ใช้แต่ละคนสั่งพิมพ์แล้ว ต้องการให้พิมพ์ออกที่เครื่องพิมพ์ของตัวเอง ส่วนจอหล่ะครับ อยู่ที่ไหนบ้าง ? และต้องการให้ใช้โปรแกรมเดียวกันพร้อมๆกันได้ด้วยหรือไม่ ?

ผมว่าถ้าระบบไม่ได้ซับซ้อนหรือต้องการ CPU แรงๆ มาซื้อเครื่องคอมมือสอง 3 เครื่อง เครื่องละประมาณ 3000-4000 บาท ให้ครบทุกไลน์การผลิต ไม่เหมาะสมกว่าเหรอครับ   

แต่ถ้าจะแก้ปัญหาโดยซอฟท์แวร์ ... ไม่รู้ว่า VBScript ของคุณมันล็อคโปรเซสของการเลือกเครื่องพิมพ์โดยล็อคไปทั้งระบบวินโดว์เลยหรือไม่ ถ้าไม่ ก็ก๊อปปี้โปรแกรมออกมาเป็น 4 โปรแกรม แต่ละไลน์การผลิตก็ใช้โปรแกรมของตัวเอง และตั้งเอาไว้เลยว่าโปรแกรมนี้ของไลน์นี้ ใช้เครื่องพิมพ์เครื่องนี้ เราจะไม่กำหนดว่าให้พิมพ์ออก Default Printer แล้ว
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.4107s