Skocz do zawartości

Mały Skrypt Z Użyciem Czasu, Myszki I Klawiatury


Subaru

Rekomendowane odpowiedzi

Witam ponownie

Zastanawiałem się czy byłoby przynajmniej teoretycznie możliwe napisanie czegoś w rodzaju skryptu, który by działał tak:

- Wysłać kliknięcie myszki w miejscu gdzie aktualnie się znajduje

- Po około 5 sek wysłać wciśnięcie klawisza Enter

- Powtarzać to co np 10 min

Ewentualnie zamiast entera to przesunięcie myszki o ileś pixeli/cm np w lewo i wtedy drugie kliknięcie

Ostatnia sprawa niekonieczna, aby było to multiplatformowe tzn działało nie tylko na Linux (ale to niekoniecznie ;) )

Prosiłbym ewentualnie o jakieś wskazówki jakiego rodzaju wiedzy by napisanie takiego programu wymagało

 

Z góry dziękuję za pomoc

 

Subaru

Odnośnik do komentarza
Udostępnij na innych stronach

Mhm Cpp no to nie tak źle bo troszkę go znam...ale mam nadzieję, że nie trzeba będzie ruszać programowania obiektowego czy czegoś w stylu Borland C++ Builder?? ^_^" no bo będę szczery, całkiem niezłe acz proste programy już napisałem w C dla PC jak i na Nintendo DS ale to nie sięga programowania obiektowego tzn. te na PC wciąż są nooo konsolowe tak więc pytam jeszcze tą jedną rzecz czy taka wiedza wystarczy (no wiadomo trzeba będzie poszukać poleceń na to o czym wspomniałem wyżej)

Odnośnik do komentarza
Udostępnij na innych stronach

Prosiłbym ewentualnie o jakieś wskazówki jakiego rodzaju wiedzy by napisanie takiego programu wymagało

Na pocieszenie moge powiedzieć, że żadne obiekty nie są potrzebne. W Pascalu newyt by śmnigało, w C na pewno.

A ta gorsza wiadomość jest taka, że najprawdopodobniej będziesz musiał odwoływac się do portów komputera - tych fizycznych, na płycie głównej.

Kluczem jest więc znalezienie materiałów co pod jakim numerkiem jest i jak się tym pod Linuksem steruje. Niestety podobne rzeczy jak na razie

robiłem tylko pod Windowsem a chwilowo nie mam czasu się w to pod Linuksem zagłębiać :/

Odnośnik do komentarza
Udostępnij na innych stronach

Matlas - no przyznam szczerze, ze chodzi o gre ;) chodzi dokladniej o to, bym mogl od czasu do czasu odejsc od kompa, lecz by mi "zwierzak" nie zdechl... potrzeba do tego kliknac na klawisz w pewnej pozycji i zatwierdzic enterem od czasu do czasu i to wszystko ^_^

 

Sanji

Moze byc ostatecznie i pod Windows - od czego mamy Wine :lol:

Fajnie, ze obejdzie sie bez obiektow :) Pascala sie nauczylem calkiem dobrze (takie podstawowe podstawy) w szkole a C/C++ we wlasnym zakresie na podobnym poziomie ;)

 

P.S.

Przepraszam, ze tak pozno odpowiadam ale mialem male problemy z netem :(

Odnośnik do komentarza
Udostępnij na innych stronach

Matlas - przepraszam za niedociagniecia ^_^"

Gra pliku wykonywalnego EXE zajmujaca 1 GB (omg) nie jest w to zamieszana przegladarka (chyba, ze o stworzenie konta to tak)

Uruchomiona gra jest w oknie wycentrowana z rozdzielczoscia 1024x768 z dzwiekiem...co tu jeszcze dopowiedziec ^_^"

 

Sorror - owszem, ale mam swiadomosc, ze programowania obiektowego sie z netem nie naucze lub troche to potrwa dlatego pytam czy daloby sie jakos ominac poki co tego typu rzeczy ;)

 

P.S. Jeszcze raz przepraszam za brak PL krzaczkow ale OperaDS ich nie ma, zaraz sie przesiade na komputer i popisze z PL krzaczkami

Odnośnik do komentarza
Udostępnij na innych stronach

Muszę przyznać, że się trochę pomyliłem. Poświęciłem chwilkę na poszperanie i musze przyznać, że sterowanie tak blisko sprzętu wcale nie jest konieczne.

W Linuksie wystarczy skorzystać z możliwości bibliotek serwera X. Poza tym jest program xvkbd ktury już symuluje klawiaturę.

Wiem, że to nie dokładnie to, o co chodziło, ale pomiedzy tymi operacjami nie ma na pewno dużej różnicy.

 

Poszukaj w google ze słowami kluczowymi "linux simulate mouse", jest tego sporo:

O myszy: http://www.linuxquestions.org/questions/pr...e-click-594576/

O klawiaturze: http://help.lockergnome.com/linux/simulati...pict487117.html

 

Okazuje sie nie być to takie trudne i jak będę mial czas to sie chyba tym w wakacje na dobre zajmę :rolleyes:

Odnośnik do komentarza
Udostępnij na innych stronach

Sanji

Zagłebiam się więc w lekturkę może wspólnymi siłami coś wykombinujemy :)

Wiesz był kiedyś taki projekt DSMouse, polegał on, aby ruszać stylusem po ekranie dotykowym Nintendo DS'a i żeby ten ruch był przekładany na ruch kursora PC'ta, no cóż ostatnia wersja projektu ponoć działała w pełni co dziesiątej osobie :lol:

No dobra wracam do tematu

czyli właściwie nawet ruch nie jest potrzebny tylko sekwencja klik -> enter -> odczekać -> klik -> enter -> odczekać

Hmmm robiłem programy w stylu "wprowadź z klawiatury" ale żeby on sam sobie wprowadzał to jeszcze nie hmmm

Odnośnik do komentarza
Udostępnij na innych stronach

Hmmm piszą, że przesuwa kursor i klika, więc w sumie jak "nauczymy" go przesuwać się z miejsca na miejsce to sprawa entera nie będzie potrzebna :lol:

hihi jutro spróbuję z marszu skompilować to co mają i przeczytam w konsoli ilość błędów xD

A potem zabawimy się :)

Dzięki będzie potrzebne ^_^

Jakby nikt nic od siebie nie dodał to zedytuję jutro post gdyby coś

aaa teraz dobranoc wszystkim bo śpiący jestem ;)

 

EDIT

Ujmę to tak... niekompiluje się :P i nie wiem czemu bowiem wskazałem skryptowi myszkowemu nawet dokładne ścieżki do plików h. o które prosił i nic :/

Próbowałem gcc i g++ bo wyglądało na to, że to C lub C++ ale wciąż dostaję co poniżej

/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
/tmp/cc1UShrt.o: In function `mouseClick(int)':
mousemove.c:(.text+0x11): undefined reference to `XOpenDisplay'
mousemove.c:(.text+0xf3): undefined reference to `XQueryPointer'
mousemove.c:(.text+0x159): undefined reference to `XQueryPointer'
mousemove.c:(.text+0x18a): undefined reference to `XSendEvent'
mousemove.c:(.text+0x1c3): undefined reference to `XFlush'
mousemove.c:(.text+0x207): undefined reference to `XSendEvent'
mousemove.c:(.text+0x240): undefined reference to `XFlush'
mousemove.c:(.text+0x24b): undefined reference to `XCloseDisplay'
collect2: ld returned 1 exit status

 

EDIT #2

Ah moja głupota czasem jest jak kosmos :P

Przecież w tym kodzie brakuje int main i return 0 =_=

Dopisałem i pozostał jeden problem już dotyczący linijki "void mouseClick(int button)" błąd brzmi tak "mousemove.c++:11: error: expected initializer before ?int? "

Może to pomoże jak dodam większy urywek jak teraz to wygląda

...
void mouseClick(int button)
int main()
{
...

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 weeks later...

Oooh wygląda interesująco :)

Dziękuję bardzo Andrew :) postaram się wypróbować jak najszybciej i napisać o rezultatach :) (choć z opisu wynika, że to zrobi 150% tego co mi potrzeba ^_^)

 

EDIT

Udało mi się to uruchomic już, teraz muszę znaleźć jak się stawiało serwer VNC, żeby to w pełni uruchomić :)

Myślę, że spełni to moje oczekiwania, jeszcze raz dziękuję i pozdrawiam :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...