Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: Symulator wciskania klawisza. spambot troche pod linucha  (Przeczytany 2398 razy)

Filystyn

  • Gość
Napisałem to już jakiś czas temu. Gdyby ktoś szukał jakiejś wskazówki jak pod linuksem za symulować naciśnięcie klawisza lub poruszenie myszki to może mu się ten kod przydać jako mocna wskazówka;)

Program pobiera linijki tekstu z pliku  i go wystukuje. Gryzie się jak samemu coś się też zacznie wstukiwać.  W grze jaką trolowałem można było mieć kolorowy tekst to \\c cośtam to komendy kolorow.

http://ideone.com/UADZ9z


Zamierzam tu czasem coś wrzucić. Pzdr.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Symulator wciskania klawisza. spambot troche pod linucha
« Odpowiedź #1 dnia: 2015-01-06, 23:20:40 »
My eyes are bleeding... Dwie pierwsze funkcje kwalifikują się do DailyWTF...

Patrząc na poprzedni program (directory walk) - nie masz zbyt ładnego stylu pisania i dobrych nawyków programistycznych.

Nie mówię o wyważaniu otwartych drzwi (zobacz man ftw) - bo akurat to zagadnienie jest świetnym ćwiczeniem z programowania rekurencyjnego (klasyczne) i iteracyjnego (twoje). Czepiam się na przykład tego:

* Stworzona klasa to tylko ładne opakowanie na stos, a cała brudna logika jest w main. Logika powinna być też przeniesiona do klasy jako metoda.

* Zamiast koszmarnego presentDir=dirToCheck[dirToCheck.size()-1]; starczyłoby  presentDir=dirToCheck.back(). Raz pięknie korzystasz z metod wektora (pushback, popback) a za chwilę walisz nim jak cepem.

* I na koniec najcięższe "przestępstwo" dla czytelności kodu: directories::isSearchDone() zwraca true jak NIE jest skończone. Stąd strasznie kłujące w oczy while(doSearch.isSearchDone()) { }. No albo nazwij to isSearchNotDone() albo np doContinueSearch(), albo niech  directories::isSearchDone() zwraca wartość intuicyjną (czyli true jak JEST skończone) i warunek popraw na czytelniejszy while(!doSearch.isSearchDone()) { }.

Z faktu że program działa nie wynika, że jest poprawny :)
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Filystyn

  • Gość
Symulator wciskania klawisza. spambot troche pod linucha
« Odpowiedź #2 dnia: 2015-01-08, 16:32:38 »
1. Te pierwsze funkcje są konieczne, można byłoby je ścisnąć ale nie wiele by to zmieniło. normalnie pewnie jakby program był większy to bym je powrzucał w inny plik cpp i zadeklarowal w hederku.

2 Postaram się zapamiętać rady i w wolnej chwili lekko poprawię directory walk.

Pzdr.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Symulator wciskania klawisza. spambot troche pod linucha
« Odpowiedź #3 dnia: 2015-01-08, 18:38:35 »
Ad 1 a konstrukcja switch/case obiła Ci się o oczy? Albo tablicowanie wyników?
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy