GNU/Linux >> Znalost Linux >  >> Linux

Je možné, aby proces démona (tj. pozadí) hledal stisknutí kláves na klávesnici USB?

Zařízení s největší pravděpodobností obdrží soubor v 02 s názvem 15 kde N jsou různá zařízení, jako je myš, klávesnice, konektor, tlačítka napájení atd.

09

by vám měl napovědět.

Podívejte se také na:

18

Kde 28 hodnota je cesta pod 34 .

Můžete otestovat např.

26

K implementaci použijte ioctl a zkontrolujte zařízení + monitor.

ÚPRAVA 2:

OK. Rozšiřuji tuto odpověď na základě předpokladu 47 se používá.

Jeden způsob by mohl být:

  1. Při spouštění smyčky všech 55 soubory nalezené v 65 . Použijte 70 k vyžádání bitů události:

    30

    pak zkontrolujte, zda 88 -bit je nastaven.

  2. Nastavte IFF a poté zkontrolujte klíče:

    48

    Např. pokud jsou číselné klávesy zajímavé, zkontrolujte, zda jsou bity pro 98 - 106 a 110 na 129 .

  3. Byly nalezeny klíče IFF a poté začněte monitorovat soubor událostí ve vláknu.

  4. Zpět na 1.

Tímto způsobem byste měli sledovat všechna zařízení, která splňují požadovaná kritéria. Nemůžete zkontrolovat pouze 134 jako např. power-button bude mít tento bit nastavený, ale evidentně nebude mít 148 atd. set.

Viděli jste falešně pozitivní výsledky u exotických klíčů, ale u normálních klíčů toto by mělo stačit. Není přímo na škodu sledovat např. soubor události pro tlačítko napájení nebo konektor, ale ty nevysílají příslušné události (neboli špatný kód).

Více podrobností níže.

ÚPRAVA 1:

Pokud jde o „Vysvětlete to poslední prohlášení…“ . Přechod do stackoverflow přistane tady… ale:

Rychlý a špinavý vzorek v C. Budete muset implementovat různé kódy, abyste zkontrolovali, že skutečně máte správné zařízení, typ události překladu, kód a hodnotu. Obvykle klávesa dolů, klávesa nahoru, opakování klávesy, kód klávesy atd.

Nemáte čas (a je tu příliš mnoho) přidat zbytek.

Podívejte se na 153 , programy jako 164 , kód jádra atd. pro mapovací kódy. Např. 173

Každopádně:

Spustit jako např.:

57

Kód:

69

EDITACE 2 (pokračování):

Všimněte si, že když se podíváte na 185 na začátku každého řádku máte písmeno. Zde 196 znamená bitovou mapu. To je například:

71

Každý z těchto bitů odpovídá vlastnosti zařízení. Což pomocí bitové mapy znamená, že 1 znamená, že je přítomna vlastnost, jak je definováno v 209 . :

88

Podívejte se na 213 ve zdrojovém stromu jádra. Je tam spousta dobrého kódu. (Např. vlastnosti zařízení jsou vytvářeny touto funkcí.)

Každé z těchto map vlastností lze dosáhnout pomocí 223 . Chcete-li například zkontrolovat, jaké vlastnosti LED jsou k dispozici, řekněte:

98

Podívejte se na definici 235 v 247 jak 256 jsou definovány.

Chcete-li zkontrolovat stav kontrolek LED, řekněte:

105

Pokud je bit 1 v 262 jsou 1, pak svítí num-lock. Pokud je bit 2 1, svítí Caps Lock atd.

275 má různé definice.

Poznámky, pokud jde o monitorování událostí:

Pseudokód pro monitorování by mohl být něco ve směru:

113

Některé související dokumenty:

  1. 288 , esp. poznámka k části 5.
  2. 292 , popis různých událostí atd. Všimněte si toho, co je uvedeno např. 306 asi 315
  3. 323 ... pokud chcete, přečtěte si zbytek.

Můžete to udělat snadno odkazem na 339 . Ty se zobrazují jako symbolické odkazy, které můžete dereferencovat pomocí 340 k určení přidruženého blokového zařízení. Tyto odkazy však vytváří 351 které nemusí být přítomné ve vašem vestavěném prostředí.

Nebo... Podívejte se na 360 po připojení USB zařízení. Mělo by vám to dát 371 uzel.


Linux
  1. Jak získat ID procesu na pozadí?

  2. Spuštění PHP skriptu z příkazového řádku jako proces na pozadí

  3. Je možné 'skrýt' proces ze seznamu `ps` nebo `top` v Linuxu

  1. MySql databáze z usb klíče

  2. Je možné předstírat konkrétní cestu pro proces?

  3. Démonizovat proces v shellu?

  1. 8 Linuxových příkazů pro efektivní řízení procesů

  2. Linux – Je možné předstírat konkrétní cestu pro proces?

  3. Zkontrolovat proces, pokud je stejný?