KeyboardHook ๊ด€๋ จ ์งˆ๋ฌธ

์•ˆ๋…•ํ•˜์„ธ์š”? ์ด์ œ ๋ง‰ c#์„ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. c# winform ๊ด€๋ จํ•˜์—ฌ ์ธ๊ฐ• ํ•˜๋‚˜ ์ •๋„ ๋“ฃ๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋ ค๋‹ค๋ณด๋‹ˆ ๋ง‰ํžˆ๋Š” ๋ถ€๋ถ„์ด ๋งŽ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์งˆ๋ฌธ ๊ด€๋ จํ•ด์„œ ์ฑ—GPTํ•œํ…Œ๋„ ์งˆ๋ฌธํ•ด๋ณด๊ณ  ์—ฌ๊ธฐ์ €๊ธฐ ์ฐพ์•„๋ดค๋Š”๋ฐ, ์ •ํ™•ํ•œ ๋‹ต์„ ์–ป์ง€ ๋ชปํ•ด์„œ ์งˆ๋ฌธ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋ฐ”์ฝ”๋“œ ๋ฆฌ๋”๊ธฐ๋กœ ๋ฐ”์ฝ”๋“œ(code 128)๋ฅผ ์ฝ์„ ์‹œ, textbox1์— ํ•ด๋‹น ๋ฐ”์ฝ”๋“œ๋ฅผ text๋กœ ๋‚˜ํƒ€๋‚ด๊ณ , ๊ทธ ๋ฐ”์ฝ”๋“œ์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ sqlserver๋กœ๋ถ€ํ„ฐ ๋ฐ›์•„์™€์„œ datagridview๋กœ ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์„ ๋ณด์—ฌ์ฃผ๋Š” (์ฆ‰, ๋ฐ”์ฝ”๋“œ ๋ฐ์ดํ„ฐ ์ด๋ ฅ ์กฐํšŒ ํ”„๋กœ๊ทธ๋žจ) ํ”„๋กœ๊ทธ๋žจB์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ :
๋งŒ๋“ค๊ณ ์žํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจB ๊ฐœ๋ฐœ ์ „, ๋จผ์ € ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‚ค๋ณด๋“œํ›…์„ ์ด์šฉํ•ด์„œ, textbox1์— ๋ฆฌ๋”๊ธฐ๋กœ ์ฝ์€ ๋ฐ”์ฝ”๋“œ๋ฅผ textbox1์— text๋กœ ๋‚˜ํƒ€๋‚ด๊ณ , ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ๋ฐ”์ฝ”๋“œ๋ฅผ ์ฝ์œผ๋ฉด, textbox1์— ๋‹ค์‹œ ๋‹ค์Œ ๋ฐ”์ฝ”๋“œ๊ฐ€ text๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ํ”„๋กœ๊ทธ๋žจA๋ฅผ ์งœ๋ดค์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ์— ๊ด€๋ จํ•œ ์ฝ”๋“œ๋ฅผ ์ฒจ๋ถ€ ๋“œ๋ ค์š”.
image

์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š”, ์ œ๊ฐ€ ์ง„์งœ๋กœ ๋งŒ๋“ค๊ณ ์žํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจB(ํ‚ค๋ณด๋“œ ํ›… ์ด์™ธ์—, sql-server๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค๋˜๊ฐ€ ๋“ฑ ์ด๊ฒƒ์ €๊ฒƒ ๊ธฐ๋Šฅ์ด ๋‹ค ์„ž์—ฌ์žˆ๋Š”โ€ฆ)์— ๋˜‘๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ ์šฉ ํ•˜์˜€์„ ๋•Œ, ๊ธฐ๋ณธ ์…‹์€ ๋˜‘๊ฐ™์ด ๊ตฌ์„ฑ์„ ํ•ด๋†“์•˜๋Š”๋ฐ ์‹คํ–‰๋˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจB์—์„œ๋Š” ๋ฐ”์ฝ”๋“œ ๋ฆฌ๋”๊ธฐ๋กœ ๋ฐ”์ฝ”๋“œ๋ฅผ ์ฝ์ž๋งˆ์ž textbox1์— ๋‚˜ํƒ€๋‚˜๋Š” text๊ฐ€ ๋‚˜ํƒ€๋‚ฌ๋‹ค ๋ฐ”๋กœ (๊ฑฐ์˜ 0.3์ดˆโ€ฆ) ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ, 'Barcode-2222โ€™์ด๋ž€ ๋ฐ”์ฝ”๋“œ(code128)์„ ๋ฐ”์ฝ”๋“œ ๋ฆฌ๋”๊ธฐ๋กœ ์ฐ์—ˆ์„ ๋•Œ, ํ”„๋กœ๊ทธ๋žจA์—์„œ๋Š” 'BARCODE1/22222โ€™์ด๋ผ๋Š” text๊ฐ€ ๋œจ๊ณ , ํ”„๋กœ๊ทธ๋žจB์—์„œ๋Š” 'emMinus11111โ€™์ด๋ผ๋Š” text๊ฐ€ ๋œน๋‹ˆ๋‹คโ€ฆ
image
image

์™œ ๋˜‘๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ๋„ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ ๊ฐ’์ด ๋‚˜์˜ค๋Š”๊ฑธ๊นŒ์š”?

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹คโ€ฆ!

2 Likes

๋ฐ‘์— emMinus ์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋Š”๊ฑด ์ง์ ‘ ํ‚ค ์ž…๋ ฅํ•˜์‹ ๊ฑด ์•„๋‹ˆ์˜ˆ์š”?
e.KeyCode.ToString()ํ•˜๋ฉด ๋ฌธ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ์—ด๊ฑฐํ˜• ์ด๋ฆ„์ด ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝ๋ ํ…๋ฐ์š”ใ…Žใ…Ž

3 Likes

๊ทธ๋Ÿฐ๋ฐ ๊ถ๊ธˆํ•œ๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค! ๋ฐ”์ฝ”๋“œ ๋ฆฌ๋”๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ›„ํ‚น์„ ๊ผญ ์จ์•ผํ•˜๋‚˜์š”?
ํ”„๋กœ๊ทธ๋žจ์ด ํ™œ์„ฑํ™” ์•ˆ๋˜์–ด๋„ ์ž…๋ ฅ์ด ๋˜์–ด์•ผ ํ•˜๋Š”๊ฑฐ์˜ˆ์š”?

4 Likes

stevemesser/rawinput: Using Raw Input from C# to handle multiple keyboards (github.com)

1 Like

์ œ๊ฐ€ ์‚ฌ์šฉํ–ˆ๋˜ ๋ฐ”์ฝ”๋“œ ๋ฆฌ๋”๊ธฐ๋Š” USB ์—ฐ๊ฒฐ์„ ํ†ตํ•ด์„œ, ํŠน๋ณ„ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋ฐ”์ฝ”๋“œ ๋ฆฌ๋”ฉ์ด ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”๋ชจ์žฅ์„ ์ผœ๋†“๊ณ  ๋ฐ”์ฝ”๋“œ๋ฅผ ์ฐ์œผ๋ฉด ํ•ด๋‹น ๋ฐ”์ฝ”๋“œ ๋‚ด์šฉ์ด ๋ฉ”๋ชจ์žฅ์— ์ž…๋ ฅ๋˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ์š”!

๊ทธ๋ž˜์„œ ๋ฐ”์ฝ”๋“œ ๋ฆฌ๋”ฉ์„ ์œ„ํ•ด ์™œ ๊ผญ ํ›„ํ‚น๊นŒ์ง€ ์“ฐ์…”์•ผํ•˜๋Š”์ง€ ๊ถ๊ธˆํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค

3 Likes

๋„ˆ๋ฌด ์–ด๋ ต๊ฒŒ ์ƒ๊ฐํ•˜์‹  ๊ฒƒ ๊ฐ™์€๋ฐ์š”.
ํ…Œ์ŠคํŠธํ•˜๊ณ  ๊ณ„์‹œ๋Š” ๋ฐ”์ฝ”๋“œ ์ข…๋ฅ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ,
RS-232 ๋ฐฉ์‹๊ณผ USB-To-Serial ์ปจ๋ฒ„ํ„ฐ ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ํƒ€์ž…์€
์ปดํฌํŠธ๋ฅผ ํ†ตํ•ด์„œ ๊ทธ๋ƒฅ ์ฝ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
USB ํƒ€์ž… ์ค‘ ํ‚ค๋ณด๋“œ ์ฒ˜๋Ÿผ ๋™์ž‘ ํ•ด์„œ textbox์—์„œ ๋ฐ์ดํ„ฐ ์จ์ง€๋Š” ๊ฒฝ์šฐ์—๋Š”
textbox์˜ ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.

6 Likes

ํ‚ค๋ณด๋“œํ›…์„ ์‚ฌ์šฉํ•œ ์ด์œ ๋Š” 'ํ‚ค๋ณด๋“œํ›…โ€™์„ ์‚ฌ์šฉํ•ด์„œ ๊ณผ์ œ๋ฅผ ์ง„ํ–‰ ํ•ด ๋ณด๋ผ๊ณ  ์ „๋‹ฌ ๋ฐ›์•„์„œ ๊ทธ๋žฌ์Šต๋‹ˆ๋‹คโ€ฆ!ใ…Žใ…Ž ๋ง์”€ ์ฃผ์‹ ๋Œ€๋กœ, ํ‚ค๋ณด๋“œํ›…์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์„ ์™„๋ฃŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ, ํ˜น์‹œ ์™œ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์— ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์˜ค๋Š” ๊ฑด์ง€ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ์š”?

1 Like