Przepisanie kodu z AutoHotKey do Pythona i jego przyspieszenie

Odpowiedz Nowy wątek
2018-12-21 16:27
0

Witam,
Potrzebuję aby ktoś przepisał dla mnie ten skrypt(AutoHotKey) do Pythona ponieważ jest on za wolny. Ja niestety nie znam się za bardzo na Pythonie ;.

F9:: Hotkey, *~$Space, Toggle

End::

*~$Space::
Sleep 2
Loop
{
GetKeyState, SpaceState, Space, P
If SpaceState = U
break
Sleep 1
Send, {Blind}{Space}
}
Return

Chodzi o to aby, po kliknięciu tak jak wyżej F9 skrypt się włączał i kiedy trzymam spację to była by ona klikana bardzo szybko, a po kliknięciu F9 z powrotem można normalnie z niej korzystać. Taki clicker.

edytowany 4x, ostatnio: furious programming, 2018-12-21 19:45
Pokaż pozostałe 13 komentarzy
@aurel: też tak myślałem :D Ale to chyba jakoś w genach jest zakodowane: bierzesz 2-letniego stwora do ogromnej wielkości sklepu z zabawkami, a ten stwór nie zwraca uwagi na nic innego, tylko biegnie przez pół hali z regałami do różowego jednorożca :D Aczkolwiek pisząc o różowym miałem coś innego na myśli. Stereotyp jest taki, że dziewczynki MUSZĄ mieć różowe sukieneczki, rajty, koszulki, buty itp., więc znalezienie czegoś w innych kolorach graniczy z cudem :( - cerrato 2018-12-21 18:08
Może w twoich genach jest coś takiego ;) Sama jestem czyjąś córką i nigdy nie ciągnęło mnie do jednorożców. Mam poza tym dwie siostry, które też jakoś nie bardzo lubiły zabawy w księżniczki. Ciuchy polecam kupować online :P - aurel 2018-12-21 18:15
Biorąc pod uwagę fakt, że jesteś jedną z 5 (no... może 10) dziewczyn, które się regularnie udzielają na forum zdominowanym przez facetów - sorry, ale nie jesteś miarodajna :P - cerrato 2018-12-21 18:25
A tak poważnie mówiąc - jednak coś w tych "babskich" genach jest. Mój stwór ma dwóch starszych braci, z którymi się bawi samochodzikami i robi inne "męskie rzeczy" i bardziej bym ją określił jako chłopczycę, niż księżniczkę. Ale jednak ten jednorożec ją znokautował ;). Natury widać nie da się oszukać. - cerrato 2018-12-21 18:27
Nie muszę być miarodajna, bo twierdzę jedynie, że nie dotyczy to wszystkich dziewcząt. BTW moje siostry nie są programistkami. - aurel 2018-12-21 18:48

Pozostało 580 znaków

2018-12-21 18:13
0

Każdemu procesowi windows przydziela time slice ok. 20ms i w zależności od obciążenia, ilości procesów, priorytetów itd. sleep 0 może powodować przerwania różnej długości od 0 do ok 20ms, dla sleep 1 będzie to 10 lub 15,6 ms do 20ms.

Jeśli potrzebujesz częściej rozwiązanie znajdziesz tutaj: https://autohotkey.com/boards/viewtopic.php?t=26685

edytowany 3x, ostatnio: Visual Code, 2018-12-21 18:34

Pozostało 580 znaków

2018-12-21 19:54
0

Jeśli potrzeba dokładniejszego odmierzania czasu, to pod okienkami pozostaje jedynie skorzystanie z funkcji QueryPerformanceFrequency i QueryPerformanceCounter. Zamiast zliczać milisekundy (czego i tak nie da rady zrobić dokładniej niż w skokach co 10-16ms), należy zliczać cykle CPU. Pierwsza funkcja zwraca liczbę cykli wykonywanych na sekundę, druga zaś bieżący stan licznika.

Aby móc odczekać milisekundę (lub mniej), wystarczy napisać sobie funkcję, wewnątrz której działać będzie pętla w kółko sprawdzająca stan licznika i będzie to robić dotąd, aż odpowiednia liczba cykli zostanie wykonana. To bardzo prosta arytmetyka.

Problem z tym rozwiązaniem jest taki, że taka pętla zżerać będzie całą moc danego jądra CPU, czyli będzie przeciwieństwem funkcji sleep, która tego nie robi. Coś o tym wiem – w końcu mój platformer w ten sposób odczekuje dowolnie małą liczbę milisekund, przez co został zwyzywany od botnetów. ;)

W razie czego mogę zarzucić przykładem takiej funkcji.


edytowany 2x, ostatnio: furious programming, 2018-12-21 19:56

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0