Nowe posty

Autor Wątek: Symulowanie wciśnięcia klawiszy  (Przeczytany 4846 razy)

Arnii

  • Gość
Symulowanie wciśnięcia klawiszy
« dnia: 2009-08-21, 22:15:33 »
Witam. Potrzebuje programu, na system Linux (Debian Lenny), który po otwarciu zasymuluje wciśniecie zapisanego wcześniej (np. w pliku txt) ciągu klawiszy. Znalazłem kod źródłowy takiego własnie programu. Problem polega na tym że od niedawna używam systemu Linux i nie jestem obeznany w pakietach itp. poza tym język C++ znam aby powierzchownie. Przy kompilacji wystepuje błąd brak kilku include g++ konkretnie wyświetla:

keyx.cpp:5:24: error: linux/init.h: Nie ma takiego pliku ani katalogu
keyx.cpp:7:26: error: linux/module.h: Nie ma takiego pliku ani katalogu
keyx.cpp:13:28: error: linux/tty_flip.h: Nie ma takiego pliku ani katalogu
keyx.cpp:17:22: error: linux/mm.h: Nie ma takiego pliku ani katalogu
keyx.cpp:18:23: error: linux/irq.h: Nie ma takiego pliku ani katalogu
keyx.cpp:20:24: error: linux/slab.h: Nie ma takiego pliku ani katalogu
keyx.cpp:21:27: error: linux/vt_kern.h: Nie ma takiego pliku ani katalogu
keyx.cpp:22:25: error: linux/sysrq.h: Nie ma takiego pliku ani katalogu
keyx.cpp:23:28: error: linux/kbd_kern.h: Nie ma takiego pliku ani katalogu
keyx.cpp:24:29: error: linux/kbd_diacr.h: Nie ma takiego pliku ani katalogu
keyx.cpp:28: error: expected constructor, destructor, or type conversion before ‘(’ token
keyx.cpp:29: error: expected constructor, destructor, or type conversion before ‘(’ token
keyx.cpp: In function ‘void println(char*)’:
keyx.cpp:34: error: ‘current’ was not declared in this scope
keyx.cpp:35: error: invalid use of incomplete type ‘struct tty_struct’
keyx.cpp:30: error: forward declaration of ‘struct tty_struct’
keyx.cpp:36: error: invalid use of incomplete type ‘struct tty_struct’
keyx.cpp:30: error: forward declaration of ‘struct tty_struct’
keyx.cpp: At global scope:
keyx.cpp:39: error: expected initializer before ‘print_string_init’
keyx.cpp:48: error: expected initializer before ‘print_string_exit’
keyx.cpp:53: error: expected constructor, destructor, or type conversion before ‘(’ token
keyx.cpp:54: error: expected constructor, destructor, or type conversion before ‘(’ token

Co mam zrobić by uzupełnić te brakujące biblioteki? Z góry dziękuje za pomoc.

arctgx

  • Gość
Symulowanie wciśnięcia klawiszy
« Odpowiedź #1 dnia: 2009-08-22, 00:58:10 »
Żeby już do końca nie rozleniwiać, podpowiem że podobny wątek był już niemal rok temu w tym właśnie dziale.

Na pytanie, jak w Debianie znaleźć np. paczkę z plikiem slab.h, odpowiem uniwersalnie:
apt-file search /slab.h
(wybierasz tę właściwą). Może wcześniej będziesz musiał zaktualizować bazę danych o plikach poleceniem apt-file update (jako root) i doinstalować samą paczkę apt-file.

Arnii

  • Gość
Symulowanie wciśnięcia klawiszy
« Odpowiedź #2 dnia: 2009-08-22, 11:32:12 »
Rzeczywiście jest aż mi głupio, że sam nie znalazłem - ale sam program xmarco znalazłem wczesniej na innej stronce. Niestety przy próbie kompilacji wystepuje kilkadziesiąt błedów więc się skupiłem nad innym, prostym programem. Tak jak napisałeś muszę zaktualizować bazę, niestety i tutaj występują błedy:
Can't get http://security.debian.org/dists/lenny/updates/Contents-powerpc.gz
Can't get http://repo.dug.net.pl/dfr/dists/stable/Contents-powerpc.gz
Can't get http://deb.opera.com/opera/dists/stable/Contents-powerpc.gz
Tracę już cierpliowość, żeby szukac rozwiązań kolejnych błedów :( przecież moje repozytorium zawsze działało i nadal działa... a nie ma np. jakiejś stronki która pelniła by podobną funkcję co apt-file?

arctgx

  • Gość
Symulowanie wciśnięcia klawiszy
« Odpowiedź #3 dnia: 2009-08-22, 12:09:09 »
Zamiast żałować siebie i tracić cierpliwość, mógłbyś chwycić wyszukiwarkę i wpisać prostą frazę typu http://www.google.pl/search?q=debian+package+search&ie=utf-8&oe=utf-8&aq=t Znowu mógłbym dać Ci namiar wprost, ale zauważ jak prosto uniknąć czekania aż ktoś podpowie.

Swoją drogą, zakomentuj sobie (# na początek linii) może chwilowo wpisy na temat trefnych repozytoriów (/etc/apt/sources.list*), chyba że mimo błędów jesteś w stanie dokonać szukania (bazy z reszt repo zostały pobrane).

Arnii

  • Gość
Symulowanie wciśnięcia klawiszy
« Odpowiedź #4 dnia: 2009-08-23, 12:22:38 »
Trzy dni próbowałem skompilować kilkonastolinijkowy kod a to powinno zajac chwilkę - chyba mam prawo stracić cierpliwość. Oczywiście najpierw pytam google a później jeśli nie znajdę odpowiedzi pytam na forum - szukjając przez google nieznalazłem tego podobnego tematu na forum. Pewne zagadnienia dla zaawansowanych użytkowników Linuxa (np. Moderator) mogą sie wydawać oczywiste ale początkujący użytkowink może nie mieć o tym pojęcia pojęcia (np. ja). Cięzko jest coś znaleźć gdy nie wiem czego szukam. Więc Moderator wyciągnął pochopne wnioski co do moich umiejetności szukania w internecie ;) Spytałem się kumpla który jest bardziej ob cykany w Linuxie co mam zrobić i juz wiem dlaczego miałem problemy:
1.To nie jest C++ tylko C
2. To nie jest program tylko moduł jądra
3. Nie powinienem ruszać modułu z moją wiedzą..
Poradził mi żebym znalazł / napisał taki program w języku skryptowym - najlepiej w Perl. Temat można zamknąc - no chyba że ktoś ma taki program a sie nie przyznał na forum (wyszkuwarka nic nie znalazła).

kamzor

  • Gość
Symulowanie wciśnięcia klawiszy
« Odpowiedź #5 dnia: 2009-08-23, 14:59:11 »
Hehe.. no z kernelem się lepiej nie baw ;) Perl albo Python.. :)

arctgx

  • Gość
Symulowanie wciśnięcia klawiszy
« Odpowiedź #6 dnia: 2009-08-24, 18:19:55 »
Cytat: Arnii
nie ma np. jakiejś stronki która pelniła by podobną funkcję co apt-file?
Cytat: Arnii
Cięzko jest coś znaleźć gdy nie wiem czego szukam. (...) Więc Moderator wyciągnął pochopne wnioski co do moich umiejetności szukania w internecie ;)
Wiedziałeś czego szukać (jak znaleźć paczkę zawierającą dany plik), tylko albo nie potrafiłeś zredukować tego do wstępnego choćby zbioru kluczowych słów, albo wcześniej, nie potrafiłeś ująć tego w bardziej ludzkim języku, a bez tego trudno przełożyć problem na żarcie dla wyszukiwarki ;) Nic zatem pochopnego...