Forum Gry Hobby Sprzęt Rozmawiamy Archiwum Regulamin

Forum: Potrzebna pomoc w stworzeniu malutkiego programu :)

09.09.2012 18:01
Orzołek
1
Orzołek
152
Haters gonna hate

Potrzebna pomoc w stworzeniu malutkiego programu :)

Witam GOLowiczów :P
Mam prośbę, potrzebuje programu coś ala macro. Jego zadanie to klikać przyciski od 0 do 9 z odpowiednimi przerwami między kliknięciami. Kompletnie nie znam się na programowaniu, dlatego nawet nie wiem w czym to zrobić.
Dokładniej mówiąc chciałbym coś takiego -
Wpisuję programowi które cyfry ma 'klikać', ustalam przerwy między kliknięciami najlepiej co do jednej dziesiątej milisekundy, tryb klikania musi być w pętli i mogę hotkeyem go załączać/wyłączać kiedy chcę i jakim klawiszem chcę. Aplikację mogę uruchamiać kilka razy i w każdej mogę ustalić oddzielne 'macro'.

"Schemat" klikania wyglądałby np. tak - "1-przerwa-2-przerwa-3-przerwa-4-przerwa-1-przerwa" itd.

Myślałem o C++ ale kompletnie się na tym nie znam, zanim ogarnąłbym jego podstawowe działania to minąłby pewnie z miesiąc. Gdyby ktoś miał ochotę mi pomóc w tym to byłbym bardzo wdzięczny.

09.09.2012 18:12
Dym14
2
odpowiedz
Dym14
109
Senator

Jestem programistycznym noobem ale wydaje mi się, że to jest ciężka sprawa. Nie mam pojęcia jak zrobić, żeby system widział coś jako kliknięcie. Pętlę na hotkey to może jeszcze dałoby rady zrobić. Za taki program ktoś skasuje zapewne kilka stów. Jakbyś posiadł kiedykolwiek kod źródłowy i go udostępnił to byłbym wdzięczny bo z chęcią bym się przyjrzał :)
Można to zrobić prowizorycznie za pomocą dostępnych programów do makr, jest ich dużo a pętlę zrobić na zasadzie rekurencji - makro wywołuje samo siebie. Trzeba by jeszcze poszukać który oferuje taką funkcjonalność.

09.09.2012 18:21
3
odpowiedz
zanonimizowany861550
5
Centurion

C++ jak najbardziej poradziłby sobie z tym zadaniem, ale myślę, że jest to lekki over-kill jak na tak prosty program.

Zakładam, że potrzebujesz tego na Windows'a? Do tego zadania polecam Python z modułami PyHook i PyWin32. Program można napisać w dwóch pętlach. Pierwsza czyta input (liczby do kliknięcia oraz przerwa), a druga, zagnieżdżona w pierwszej, odpowiada za klikanie odpowiednich klawiszy. Z PyHook używasz funkcji do skanowania kliknięć na klawiaturze, a przy pomocy modułu PyWin32 klikasz na odpowiednie klawisze.

09.09.2012 18:21
Orzołek
4
odpowiedz
Orzołek
152
Haters gonna hate

Miałem kiedyś taki programik - Autobot się nazywał czy coś, problem był w tym, że on mógł 'wpisywać' tylko 1 klawisz. Musiałem mieć odpalone 4 takie programy w dodatku musiałem w odpowiednim momencie włączyć każdy co jest bez sensu, bo potrzebuję równych odstępów między 'kliknięciami'.
W skrócie chodzi mi właśnie o taki program do makro. Tyle, że te co są na necie nie oferują wszystkiego czego chcę ( albo jeszcze nie znalazłem takiego ).

09.09.2012 19:26
5
odpowiedz
zanonimizowany862520
5
Konsul

autoit

do napisania w 10min.

09.09.2012 19:34
6
odpowiedz
QrKo
160
Yarr!

Dokladnie - autoit. Z tego co pamietam moze symulowac nawet klikniecia myszka w konkretne wspolrzedne, da sie tam do prostych czynnosc w grachi zrobic calkiem niezlego minibota.

10.09.2012 17:39
Orzołek
7
odpowiedz
Orzołek
152
Haters gonna hate

Dobra ściągnąłem tego AutoIT.
Rozumiem, że pętla to "While 1"
"Send" to wyślij ( tutaj wpisuję cyfry )
"Sleep" - To opóźnienie między send.
Jak na razie dałem coś takiego :
Send (3)
Sleep (78)
Send (4)
Sleep (78)
Send (5)
Sleep (78)
Send (6)
Sleep (78)

I jest ok, teraz tylko pomóżcie mi zrobić pętlę na hotkey.
Chcę ją mieć na prawy przycisk myszy - klikam raz ppm i funkcja leci dopóki nie nacisnę jeszcze raz ppm - wtedy się zatrzymuje. Wydaje mi się, że trzeba coś zrobić z funkcją "If" Ale kompletnie nie wiem jak to zrobić :D

10.09.2012 17:59
8
odpowiedz
QrKo
160
Yarr!

To juz raczej wyzsza szkola na poziomie programowania pod windows, watpie zeby autoit potrafil przechwytywac klikniecia myszki. Prosciej bylo by skompilowac to do exe i w sterownikach myszki podpiac pod prawy przycisk, ale przerywanie dzialania musialo by sie odbywac poprzez domyslny sposob autoita.

10.09.2012 18:13
Orzołek
9
odpowiedz
Orzołek
152
Haters gonna hate

Dobra, może też być pod klawisz no problem...
Na razie mam tak :
HotkeySet("l", "Rapidfire")
Func RapidFire()
While 1
Send (3)
Sleep (78)
Send (4)
Sleep (78)
Send (5)
Sleep (78)
Send (6)
Sleep (78)
WEnd
EndFunc
I jak klikam ten klawisz który ustawiłem to nic się nie dzieje >.>. Nie wiem co robię źle.

10.09.2012 19:41
10
odpowiedz
zanonimizowany862520
5
Konsul

na zdrowie

HotKeySet("‹;ESC›;", "Terminate")
HotKeySet("l", "start") ;małe L
HotKeySet("k", "stop") ;małe k

$i=0
;;;;;;;;;;;;;;;;;;;;;;;;;
While 1
While $i=1
Send (3)
Sleep (78)
Send (4)
Sleep (78)
Send (5)
Sleep (78)
Send (6)
Sleep (78)
WEnd
sleep(100)
WEnd
;;;;;;;;;;;;;;;;;;;;;;;;

Func Terminate()
Exit 0
EndFunc ;==>Terminate

Func start()
$i=1
EndFunc

Func stop()
$i=0
EndFunc

l - start
k - stop
esc - wywalenie skryptu z pamieci

GOL podmienia nawiasy - przy ESC powinny być klamerki

10.09.2012 19:57
Orzołek
11
odpowiedz
Orzołek
152
Haters gonna hate

Dzięki wielkie :D

10.09.2012 23:43
Orzołek
12
odpowiedz
Orzołek
152
Haters gonna hate

Jeszcze jedna sprawa.
Jak odpalam 2 exe to działa ten który został uruchomiony jako 1, mimo iż są to 2 oddzielne aplikacje. Jeśli nie da się ich uruchomić osobno to chciałbym do tego powyższego scryptu dodać bind na literkę U aby była wciskana cały czas ( bez opóźnienia, tak jakbym cały czas trzymał ten przycisk - hotkey na to też na literkę L, skoro nie można na ppm ). Próbowałem robić schematycznie jak w [10] ale i tak albo działa 'mój' scrypt albo ten z [10]...
Za pomoc dzięki ;]

11.09.2012 08:15
13
odpowiedz
zanonimizowany862520
5
Konsul

szczerze mówiąc za bardzo nie wiem o co chodzi w ostatnim poście.
Jakie 2 exy? Dwa skompilowane do postaci exe skrypty?
można dodać hotkey na ppm - zamiast "l" bodajże "right_mouse_click" - musiałbyś sprawdzić w instrukcji bo dużo rzeczy z autoita pozapominałem.

11.09.2012 17:02
Orzołek
14
odpowiedz
Orzołek
152
Haters gonna hate

Tak, 2 oddzielnie skompilowane do postaci exe scrypty, różniły się tylko wartością w Send i Sleep oraz ich ilością. Działał tylko ten włączony jako pierwszy.

A co do [12] to chodzi mi o to -
- Naciskam na klawiaturze RAZ klawisz np. 'L' który uruchamia scrypt
- Program po naciśnięciu 'L' działa tak, jakbym cały czas trzymał klawisz 'U'
- Po naciśnięciu 'K' scrypt się zatrzymuje.

+ do tego scrypt z [10] najlepiej w 1 exe przy tym samym hotkey. Chyba, że się tego samego hotkey nie da to ok ;] Powiedz mi tylko jak zrobić albo czy da się tak zrobić. Bo Send działa tak jakbym klawisz nacisnął a nie go trzymał ( chyba, że ustawię delay np. na 1, ale to nie to samo :/ )

EDIT:
Zrobiłem 3 scrypty na oddzielnych hotkey ( jedynie wyłączający hotkey został ten sam ) i niby jest ok, mogę każdy włączyć wyłączyć potem włączyć drugi etc, ale nie działają np. 2 na raz... Jak pod num1 mam pierwszy pod num2 drugi i pod num3 trzeci to gdy odpalę num1/num2/num3 to wtedy nie działają żadne inne scrypty poza STOP'em...

Forum: Potrzebna pomoc w stworzeniu malutkiego programu :)