read kbd buffer

9 отговора 205 прегледа
#1

read kbd buffer

daite mi ideq ili mqsto ot kadeto da pro4eta kak da 4eta bufera na klaviaturata nezavisimo ot aktivnoto prilojenie.... stava duma za winXP za jalost XP-to ne dava direktno da pipash po portovete i da izpolzvash prekysvaniq kakto sum pravil pod win98... hooks s dll's ne me ustroivat celta mi e vsi4ko v edno

Отговор
в отговор на XE #2

Re: read kbd buffer

Няма начин да пипаш портовете под NT/2K/XP без device-driver.
Има разни драйвери с общо предназначение, които го позволяват (но не съм видял такъв който ти дава да пипаш прекъсване, най-малко на клавиатурата).
Ако и това не ти харесва, затова са направени тези hooks. Нямам възможност да пробвам в момента, но мисля че това ограничение да бъдат в DLL вече не важи (или поне - не за всички).

---
Не е важно да си добър, важното е да си ман-и-як!
Отговор
в отговор на ess #3

Re: read kbd buffer

Date: 12/08/2000 06:12AM PST
Just an idea why down't y use a keyboard hook then the prog would work on NT and on win9x. The only problem that a keyboard hook has it that it doesn't work if you run a directx full screen app (a game) or if you set another keyboard hook after your first one, then the first one sometimes doesn't work


takova neshto ne mi trqbva..... za tova ne iskam hook zashtoto iskam da nqmam ni nai malki symnenie 4e moje da otkaje deistvieto si po edni ili drugi pri4ini.... a i az ne sym zapoznat s hooks 4e da si go pisha sam

ina4e sega gledam edni stranici posveteni na programirane za portovete pri NT sys drivers

Отговор
в отговор на XE #4

Re: read kbd buffer

Ами дерзай, тогава.
Само ми се струва, че няма да е никак лесно. Ти хубаво ще пипаш портовете, ама нали за да прочетеш натиснатият клавиш, това трябва да стане веднага след прекъсване от клавиатурата (ако не се лъжа...). А както вече казах, не съм видял нещо с общо предназначение, което да прехваща прекъсване.

И още нещо: ами ако клавиатурата ти е USB? Какво правиш тогава, а?

Колкото по-ниско слизаш при решаването на някакъв проблем, толкова повече проблеми имаш...

---
Не е важно да си добър, важното е да си ман-и-як!
Отговор
в отговор на XE #5

Само ще си загубиш времето.

Не знам защо ти е подобно нещо(глупост) - но то е обречено на постоянни проблеми - като искаш слез на ниво ДОС - и не се занимавай с Win - там ще имаш пълен контрол над всичко (почти).
Идеята на операционната система е програмиста (на високо ниво) да не се занимава с подобни "железарски работи" - виж ако ти си решил, че ти се налага (макар да не се сещам за смислено подобно нещо - което пък трябва да е побрано и в един файл - що за дивотия ??? е подобно изискване) това е твой проблем. Макар, че вместо това ако беше споделил за какво точно ти се налага - най-вероятно щеше да получиш доста по-смислени отговори.

---
Е т'ва е живот!
Отговор
в отговор на XE #6

Re: read kbd buffer

Здравей!
Докато се ровех в MSDN попаднах на тема за кейборд хукс където точно обясняваха как да се прихващат всички клавиши без твоето приложение да и активно. Освен това имаше и блокови схеми но ночина по който windows чете клавиатурата. Не се задълбах много но ми се видя добро.
Смятам че ще е полезно да го прочетеш преди да решиш как ще го направеш, ако не си го чел вече.
Чао!

Отговор
в отговор на XE #7

Re: read kbd buffer

Хеоне, (ама с Хъ)
Най-добре да потренираш хукването, тъй като това ти е решението за ХР. Ония дето е писал, че има проблем, ако има и други куки, ами не е така. Проблем има единствено, ако този който я е правил не си е чел хелпа и не е видял, че като си обработиш данните, трябва да ги подадеш нататък (по веригата).

Хубавото на ХР е, че не показва куките, които са стартирани. Това беше проблема под 98 и затова ползвахме Asm. Пък и под 98 можеш да си скриеш програмата от Task Manager-a, под ХР не е така. Начи хем ще потренираш, хем и ще направиш нещо ценно. Ако имаш нужда от пример, ще ти пратя кода на куката на речника (AEDHook.dll), която хваща Ctrl+RightClick и PauseBreak. Ще я модифицираш и ще стане.

Колкото до DirectX програмите (които имат проблем с куките), залагам си несъществуващия лаптоп, че не това ти е целта.

by Waz Gaa
[email protected]
Отговор
в отговор на XE #8

Re: read kbd buffer

[линк] na wi implementaciq na sytem wide kbd hook ne e koj znae kwa filosofiq shtom az mojah da go napisha seki moje

------------------------------
I got a COMPILER, and I'm not afraid to use it!
Отговор
в отговор на Waz Gaa #9

Re: read kbd buffer

ne stava vapros za directX.... tva s kukite trqbva da si nekav GURU 4e da predvidish vsi4ko i da q napravish raboteshta bez absoliutno nikakav problem.....

neska dokato si testvah huknatoto app i..... na4i pri XP ima nekav maloumen KeyFilter za nedygavi kato nacykash shifta nqkolko pyti ili kato go zadyrsjish za 10-15 sek i se aktivira... togava kukata uvisva! pone s tezi primeri koito probvah vinagi go ima problema, drugo neshto e ako predi tva ima druga kuka..... a da ne govorim 4e ako e instalna oshte vednyj i se polu4ava dvoen efekt....
dai si tvoq sors[na maila mi] da ta vidq ko si naprail.... i da ta bugna

Отговор
в отговор на XE #10

Re: read kbd buffer

Не трябва да си някакъв GURU, ами много точно да си определиш целите и да си седнеш на таланта и да го направиш. Щом си се хванал с такива неща, носи си последствията.

Ако не може, значи просто не може, или поне по начина които искаш! Стига си ревал!

---
Не е важно да си добър, важното е да си ман-и-як!
Отговор