Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

AutoHotKey - Potrzebna pomoc w pisaniu skryptu


Rekomendowane odpowiedzi

Opublikowano

Potrzebuje pomocy aby napisać skrypt aby wykonywał czynności (opisane niżej) i abym mógł go włączyć naciskając f1 i wyłączyć powtarzając tą czynność.

F1::
if getkeystate("F1", "T") ;
settimer, klikacz, 300 ;
else
settimer, klikacz, Off ;
return

1. Naciśniecie klawisza (T) i wpisanie /menu.
 

Send {t}
Send {/}
Send {m}
Send {e}
Send {n}
Send {u}

2. Klikanie lewym klawiszem myszki przez jakiś czas

klikacz:
SendInput, {Click} ;
Return

3. Powrót do kroku pierwszego.

Nie wiem za bardzo jak to połączyć i ewentualnie czego brakuje może ktoś pomóc?

In your dream.

Opublikowano
openMenu()
{
    Send t ; klamerki nie są raczej potrzebne - są wymagane gdy piszesz złożoną nazwę klawisza np {space}
    Sleep 500 ; odstępy czasowe moga ale nie musza być potrzebne - przetestuj
    Send /
    Sleep 500
    Send menu
}

f1::
if(wlaczony = false)
{
    openMenu()
    settimer, klikacz, 300
    wlaczony := true
}
else
{
    settimer, klikacz, off
    wlaczony := false
}
return

klikacz:
MouseClick
Return 

Nie przetestowałem, powinno zadziałać.

Twój błąd polegał na tym, że funkcja getkeystate() zawsze zwróci true gdyż jest ona wywoływana właśnie podczas wciskania klawisza.

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

Co nie działa? Nie odpala się? Wywala błąd? Działa niepoprawnie? Coś więcej niż "nie działa" by się przydało ;)

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

Ok, tym razem przetestowałem - działa, zapomniałem zainicjować zmienną "wlaczony" (testowałem na pliku tekstowym - pisze zadany tekst i klika).

openMenu()
{
    Send t ; klamerki nie są raczej potrzebne - są wymagane gdy piszesz złożoną nazwę klawisza np {space}
    Sleep 500 ; odstępy czasowe moga ale nie musza być potrzebne - przetestuj
    Send /
    Sleep 500
    Send menu
}
wlaczony := false

f1::
if(wlaczony = false)
{
    openMenu()
    settimer, klikacz, 300
    wlaczony := true
}
else
{
    settimer, klikacz, off
    wlaczony := false
}
return

klikacz:
MouseClick
Return 

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

Trzeba w etykiecie "klikacz" dodać warunek wyłączający timer no i wtedy go wyłączyć (mógłbym poniższy kod zapisać krócej, ale tak jest czytelniej i łatwiej edytować czasy niż jakbym ustawił na sztywno):

openMenu()
{
    Send t ; klamerki nie są raczej potrzebne - są wymagane gdy piszesz złożoną nazwę klawisza np {space}
    Sleep 500 ; odstępy czasowe moga ale nie musza być potrzebne - przetestuj
    Send /
    Sleep 500
    Send menu
}
wylaczTimer() ; wyciągnąłem instrukcje wyłączania timera do funkcji żeby nie dublować kodu
{
    global
    settimer, klikacz, off
    wlaczony := false
    cykle := 0 ; resetujemy licznik cykli
}

wlaczony := false
okres := 300 ; odstępy między kliknięciami
czasTotal := 4 * 60000 ; maksymalny czas działania timera w ms
maxCykli := czasTotal / okres
cykle := 0


f1::
    if(wlaczony = false)
    {
        openMenu()
        settimer, klikacz, %okres%
        wlaczony := true
    }
    else
        wylaczTimer()
    return

klikacz:
    cykle++ ; zwiększamy licznik cykli o 1 za każdym wywołaniem timera
    MouseClick
    if(cykle >= maxCykli)
        wylaczTimer()
    Return 
 

Jakbyś nie rozumiał co, jak i po co to daj znać - wytłumaczę.

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...